SlideShare a Scribd company logo
1 of 13
Macro
소속팀 : 포털 Ajax 팀
작성일 : 2013 년 01 월 18 일
작성자 : 모정훈
ⓒ 2013 NHN CORPORATION
준비 사항
• Bluestacks 에 대한 소개
– 설치 방법
– 실행 방법
• Python 에 대한 약간의 지식
– 설치 방법
– 실행 방법
– 특징
– 관련 라이브러리 ( 모듈 )
2
Bluestacks
• Bluestacks 에 대한 소개
– http://www.bluestacks.com/
– PC 용 스마트폰앱 (Android) 에뮬레이터
3
Python (1 of 2)
• Python 에 대한 약간의 지식
– http://www.python.org/
– 인터프리터를 이용한 객체지향 프로그래밍 언어
– 유닉스 / 리눅스 , 맥 , 도스 , 윈도우 등 많은 종류의 운영체
제에 이식
– 실행 방법은 Java 와 비슷 (python 명령 + 타겟 코드 파일
)
• 특징
– 들여 쓰기로 블럭 작성
– 버전에 대한 의존성 ( 라이브러리 )
– 동적 데이터 형식 , 수 많은 시스템 호출 및 라이브러리 ,
인터페이스
– 자유로운 소스코드 이용과 수정 , 재사용 용이4
Python (2 of 2)
• 관련 라이브러리
– PIL (Python Image Library)
• http://www.pythonware.com/library/pil/handbook/
• 이미지를 캡쳐 , 생성 , 저장 등의 이미지 프로세싱을 위한 라이브러리
• 예 ) Image, ImageGrab
– time
• 시간 라이브러리
– Win32
• http://timgolden.me.uk/pywin32-docs/contents.html
• 예 ) win32api, win32con, win32gui
– random
• 랜덤
– collections
• defaultdict
5
구현 원리
해당 윈도우 창 찾기
while ( 종료시간 ? ) {
7 x 7 배열 초기화
원하는 영역 캡쳐
블럭 인식
배열에 블럭 정보 저장
배열을 기준으로 조작할 큐 생성
큐에 있는 내용대로 마우스 제어
}
6
원하는 영역을 선택 & 캡쳐
• 원하는 영역을 선택 & 캡쳐
7
블럭을 인식
• 특정 영역의 픽셀의 색깔로 인식
8
조작할 블럭에 대한 큐 생성
• 조작할 블럭에 대한 큐
9
사용 방법
• Python 실행 방법
– python [ 코드파일 ] [ 옵션… ]
• 매크로 실행방식
– python anipang.py [ 캡쳐주기 ] [ 실행시간 ] [ 실행방식
]
– 캡쳐주기 : 화면 캡쳐의 주기 시간 (1/100 sec)
– 실행시간 : 초 단위의 총 실행 시간 (1/100 sec)
– 실행방식 : 주기 시간에 실행하는 방식 (single, multi)
예 ) python anipang.py 0.5 60 [single | multi]
10
시연
• 시연
11
마치며 ..
• 느낀점 ..
– 언어는 상관 없다 .
– 계속 공부해야 하는 슬픔을 자신의 즐거움에서 찾자 .
– 특정 프레임워크나 업무가 세상의 전부가 아니다 .
– 현실과 접점에서 문제 해결을 고민하고 실천해보자 .
12
Thank you.

More Related Content

What's hot

초등학생도 하는 그냥 DB설치
초등학생도 하는 그냥 DB설치초등학생도 하는 그냥 DB설치
초등학생도 하는 그냥 DB설치
현찬 양
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
OnGameServer
 
Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41
cosmosyc
 

What's hot (20)

초등학생도 하는 그냥 DB설치
초등학생도 하는 그냥 DB설치초등학생도 하는 그냥 DB설치
초등학생도 하는 그냥 DB설치
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
Ch9 프로세스의 메모리 구조
Ch9 프로세스의 메모리 구조Ch9 프로세스의 메모리 구조
Ch9 프로세스의 메모리 구조
 
Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교
 
intro. typescript playground
intro. typescript playgroundintro. typescript playground
intro. typescript playground
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
 
d.ts 만들기
d.ts 만들기d.ts 만들기
d.ts 만들기
 
Bookiya server(이책이야 서버 개발발표)
Bookiya server(이책이야 서버 개발발표)Bookiya server(이책이야 서버 개발발표)
Bookiya server(이책이야 서버 개발발표)
 
Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41
 
게임서버프로그래밍 #6 - 예외처리 및 로깅
게임서버프로그래밍 #6 - 예외처리 및 로깅게임서버프로그래밍 #6 - 예외처리 및 로깅
게임서버프로그래밍 #6 - 예외처리 및 로깅
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차
 
Bootchart 송형주
Bootchart 송형주Bootchart 송형주
Bootchart 송형주
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차
 
Cloudoc fujitsu desktop_svr_appliance_kor_20171013
Cloudoc fujitsu desktop_svr_appliance_kor_20171013Cloudoc fujitsu desktop_svr_appliance_kor_20171013
Cloudoc fujitsu desktop_svr_appliance_kor_20171013
 
게임서버프로그래밍 #3 - 메모리 및 오브젝트 풀링
게임서버프로그래밍 #3 - 메모리 및 오브젝트 풀링게임서버프로그래밍 #3 - 메모리 및 오브젝트 풀링
게임서버프로그래밍 #3 - 메모리 및 오브젝트 풀링
 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.x
 

Similar to Macro for Game

머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
Jeongkyu Shin
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Joongi Kim
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
Jaeseung Ha
 
High performance networking in chrome
High performance networking in chromeHigh performance networking in chrome
High performance networking in chrome
Ji Hun Kim
 

Similar to Macro for Game (20)

머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
Foss open sorucesw_6902
Foss open sorucesw_6902Foss open sorucesw_6902
Foss open sorucesw_6902
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
웃으면서Python
웃으면서Python웃으면서Python
웃으면서Python
 
샌드박스
샌드박스샌드박스
샌드박스
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
제로부터시작하는오픈소스
제로부터시작하는오픈소스제로부터시작하는오픈소스
제로부터시작하는오픈소스
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Oracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimOracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kim
 
오픈스택! 이틀이면할수있다! 시즌2
오픈스택! 이틀이면할수있다! 시즌2오픈스택! 이틀이면할수있다! 시즌2
오픈스택! 이틀이면할수있다! 시즌2
 
High performance networking in chrome
High performance networking in chromeHigh performance networking in chrome
High performance networking in chrome
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
 
쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택
 

Macro for Game

  • 1. Macro 소속팀 : 포털 Ajax 팀 작성일 : 2013 년 01 월 18 일 작성자 : 모정훈 ⓒ 2013 NHN CORPORATION
  • 2. 준비 사항 • Bluestacks 에 대한 소개 – 설치 방법 – 실행 방법 • Python 에 대한 약간의 지식 – 설치 방법 – 실행 방법 – 특징 – 관련 라이브러리 ( 모듈 ) 2
  • 3. Bluestacks • Bluestacks 에 대한 소개 – http://www.bluestacks.com/ – PC 용 스마트폰앱 (Android) 에뮬레이터 3
  • 4. Python (1 of 2) • Python 에 대한 약간의 지식 – http://www.python.org/ – 인터프리터를 이용한 객체지향 프로그래밍 언어 – 유닉스 / 리눅스 , 맥 , 도스 , 윈도우 등 많은 종류의 운영체 제에 이식 – 실행 방법은 Java 와 비슷 (python 명령 + 타겟 코드 파일 ) • 특징 – 들여 쓰기로 블럭 작성 – 버전에 대한 의존성 ( 라이브러리 ) – 동적 데이터 형식 , 수 많은 시스템 호출 및 라이브러리 , 인터페이스 – 자유로운 소스코드 이용과 수정 , 재사용 용이4
  • 5. Python (2 of 2) • 관련 라이브러리 – PIL (Python Image Library) • http://www.pythonware.com/library/pil/handbook/ • 이미지를 캡쳐 , 생성 , 저장 등의 이미지 프로세싱을 위한 라이브러리 • 예 ) Image, ImageGrab – time • 시간 라이브러리 – Win32 • http://timgolden.me.uk/pywin32-docs/contents.html • 예 ) win32api, win32con, win32gui – random • 랜덤 – collections • defaultdict 5
  • 6. 구현 원리 해당 윈도우 창 찾기 while ( 종료시간 ? ) { 7 x 7 배열 초기화 원하는 영역 캡쳐 블럭 인식 배열에 블럭 정보 저장 배열을 기준으로 조작할 큐 생성 큐에 있는 내용대로 마우스 제어 } 6
  • 7. 원하는 영역을 선택 & 캡쳐 • 원하는 영역을 선택 & 캡쳐 7
  • 8. 블럭을 인식 • 특정 영역의 픽셀의 색깔로 인식 8
  • 9. 조작할 블럭에 대한 큐 생성 • 조작할 블럭에 대한 큐 9
  • 10. 사용 방법 • Python 실행 방법 – python [ 코드파일 ] [ 옵션… ] • 매크로 실행방식 – python anipang.py [ 캡쳐주기 ] [ 실행시간 ] [ 실행방식 ] – 캡쳐주기 : 화면 캡쳐의 주기 시간 (1/100 sec) – 실행시간 : 초 단위의 총 실행 시간 (1/100 sec) – 실행방식 : 주기 시간에 실행하는 방식 (single, multi) 예 ) python anipang.py 0.5 60 [single | multi] 10
  • 12. 마치며 .. • 느낀점 .. – 언어는 상관 없다 . – 계속 공부해야 하는 슬픔을 자신의 즐거움에서 찾자 . – 특정 프레임워크나 업무가 세상의 전부가 아니다 . – 현실과 접점에서 문제 해결을 고민하고 실천해보자 . 12