[python] 애니팡3, 사천성 어시스턴트 개발준비

글쓴이 Engineer Myoa 날짜

애니팡1은 주어진 시간내에 많이 맞추는것이 목표라

오토가 등장했었으나.. 애니팡3나 사천성은 아직 없어 보였다.

 

애니팡 3같은 경우는 생각보다 해야할 조건이 많다.

내가 생각하기에는

1) 맵분석

2) 경로알고리즘

3) 다음떨어질 블록 계산

인데 여기서 3번이 가장 골때린다.

단순히 나올확률을 1/n하면 된다고 생각할지 모르겠으나

느낌상 맵상태에 따라 블록이 다르게 내려오는 걸 느꼈다.

아마 시드가 상황에 맞게 계속 바뀌거나 현재 존재하는 블록수 또는 추가될 블록에 인접한 블록들의 수에 따라서

비율로 결정되는거같다. 이건 뭐 까보기 전까지는 단정할 수 없는거지만 해본 사람들은 무슨말인지 이해할 것이다.

애니팡3에서는 더 이상 맞출것이없으면 전체셔플을 하는데 이는 다르게 말하면 하나라도 맞출것이 있으면 셔플을 하지않는다는 것이다.

따라서 맞춰도 스테이지 클리어에 도움이 안되는 경로를 계속 생성하기위해 좀전에 말한 방식으로 새로운 블록이 내려온다고 생각한다.

 

아무튼 이건 간단하게 구현하면 인접블록으로 비율설정이고 복잡하게 구현하면 머신러닝이겠지

 

 

사천성같은경우는 훨씬 간단하다.

최적의 경로를 찾는 문제보다는 경로가 존재하는지, 그리고 그 경로가 3회 미만으로 꺾여지는 경로인지.

애니팡과 사천성 모두 분석하기위해 알고리즘이 거의 전수조사를 해야한다.

나 같은경우는 직접가중치는아니고 알고리즘 최적화를 위해서 다중 큐로 BFS를 구현하였다.

 

 

해당 맵의 데이터를 수치화해서 알고리즘에 적용하면

다음과 같이 경로를 찾아준다.

 

메인탐색알고리즘이 실행되기전에 짝의 갯수를 먼저 체크하는데 이는 ?블록을 처리하는데 매우 도움이 될 것이다.

추후 OpenCV를 통해서 맵분석, 남은블록수를 이용하여 자동화를 해보려고 한다.

 

카테고리: 개발노트

1개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다