"Fruit Box" (사과게임 바로가기) 웹 게임을 자동으로 플레이하는 봇을 Python으로 제작한 프로젝트입니다. 마우스 드래그를 자동화하여 숫자의 합이 10이 되는 사과 조합을 찾아 점수를 올립니다.
- Python 3.8
- tesseract
- opencv-python
- pyautogui
- keyword
ROOT
├── code/
│ ├── __init__.py # code 패키지 초기화 파일
│ ├── main.py # 프로그램 진입점, 전체 로직 실행
│ ├── mouse.py # 마우스 이동 및 드래그 기능 모듈
│ ├── ocr.py # 이미지에서 숫자 인식 (OCR) 기능 모듈
│ ├── recognize.py # 사과 게임 알고리즘 코드
│ └── screenshot.py # 게임화면 스크린샷 캡처 및 저장 모듈
├── image/
│ ├── convert/ # OCR 변환된 이미지 저장 폴더
│ ├── debug/ # 디버깅 이미지 저장 폴더
│ └── screenshot/ # 게임 화면 스크린샷 저장 폴더
├── config.py # 전역 설정 파일 (경로, 좌표, 기타 상수)
├── README.md # README 파일
└── test.py # main.py 기능 테스트
- 마우스와 키보드를 직접 조작하는 방식이므로, 드래그 위치와 드래그 속도 조정이 필요할 수 있습니다.
- 게임 해상도나 브라우저 배율 설정에 따라 좌표가 달라질 수 있습니다. 필요 시 offset_x, offset_y 값을 수정해야 합니다.
- Mac에서는 보안 → 손쉬운 사용 → 앱 제어 권한 허용 필요.
- 현재 이미지 → 숫자 변환 과정에서 인식 성공률이 100%가 아님.
- 숫자 인식 실패 시 -1 (장애물)로 처리되기 때문에,장애물이 포함된 영역은 사각형 탐색이 불가능해짐.
- OCR 모델 튜닝 또는 이미지 전처리 개선을 통해 인식률을 높일 필요가 있음.
- 현재는 두 개 숫자 조합만 고려하고 있는데, 2개 → 3개 → 4개 조합까지 점진적으로 늘리는 처리가 필요함.
- 숫자 조합이 많아질수록 시간 복잡도가 급격히 증가하므로, 탐색 알고리즘 최적화가 필요함.
- 현재는 모든 탐색이 끝난 후에 마우스를 드래그하는 방식이라 탐색 + 마우스 이동이 직렬 처리되고 있음.
- 탐색과 마우스 이동을 병렬 처리하면, 전체 속도를 좀 더 빠르게 만들 수 있을 것으로 예상됨.
auto_95_trim.mov
2025.05.01 : 사과 탐색 알고리즘 개선
- 평균 점수 90점 -> 100점