Project/Fruit Box

0. 재밌는 사과 게임

피준 2022. 11. 30. 00:26

해보고 싶은 프로젝트가 생겼다

 

문제는 내가 지금 알고 있는 건 없고, 어떻게 하는지 모르겠다

그러니 일지를 기록해 두자

 

아 그리고 이 프로젝트는 비정기적으로 심심하면 작성할 예정이니

많관부~

0. 사건의 발단

어느 날 수업 시간에 온 카톡

요새 인싸 친구들이 한다는 화제의 게임이라고 한다

https://www.gamesaien.com/game/fruit_box_a/

10을 만드는 사과 조합을 찾아 터트리는 게임이다

되게 단순하면서 중독성 있다

 

계속해도 점수는 잘 오르지 않고 화가 난다

게다가 눈이 아프다

 

게임을 하면서 (9, 1)이나 (8, 2) 같은 조합을 빠르게 치우면 점수가 잘 나오는 경향이 있다는 걸 경험적으로 알았다

그런데 난 이번 학기에 "기초 인공지능" 수업을 듣는데, 여기서 배운 상황과 유사하다는 생각이 들었다

에이전트가 상황에서 가장 점수를 얻는 선택을?

게다가 10x17으로 사과가 많이 않고, 120초 정도의 시간이 주어졌으니...

 

어 이거? 하는 생각이 들었다

1. 문제 분석

그렇게 사과 게임을 플레이하는 게임 에이전트를 제작하기로 결정했다

그래서 어떻게 해야 할까 가 가장 큰 문제였다

문제를 크게 두 부분으로 나누면

웹과 상호작용하여 사과의 숫자 배열을 가져와오고, 무언가 결정된 행동으로 사과를 지워야 한다

또한 당연한 말이지만 현재 사과의 상태가 주어지면 최적의 행동을 알아내는 모델을 만들어야 한다

뭐 게임 강화 학습..?

잘 모르겠다.

2. 일단 가보자

뭘 하든 사과의 숫자를 알아내야 한다는 생각이 들었다

사과의 숫자를 저장한 배열을 어떻게든 만들어야 한다

아마도 페이지 상에 자바 스크립트로 작성되어있겠지만 잘 모르겠다

캔버스..?

고민을 하다 한 영상을 찾게 되었다 

https://youtu.be/rswFAwVlO40

 

해당 영상을 기반으로 분석을 시도해 보려 하였다

일단 셀레니움이나 클리커 등은 넘어가고

사과의 숫자 정보를 찾아야 한다

코드를 찾아보니 이런저런 수상해 보이는 코드를 찾았다

뭔가 아래 두 녀석 중 하나가 게임을 구성하고 있는 것 같은데..

어쩌면 뭐 둘 다 일 수도 있고

근데 위에 파일은 9천 줄이고, 아래는 8백여 줄이다

게다가..

변수가 다 a, b, c, d.. 이런 식이다

와....

 

이제 이걸 어떻게 해야 할지 고민이다.

 

변수를 더 찾아봐야 할지

아니면 그냥 openCV를 통해 사과 이미지의 숫자를 읽을지..

좀 더 고민해 보자