본문 바로가기

프로젝트/일지

안드로이드 틱택토 앱 게임 만들기 미니맥스 알고리즘 인공지능 #0

728x90
반응형

 

동아리 대축제 부스 전시에 사용하려고 만든 틱택토 앱입니다.

안드로이드 스튜디오로 제작하였으며 안드로이드 기기에서만 동작합니다...

 

틱택토 게임의 이름은 많이들 들어보셨을텐데 실제 게임 방법은 잘 모르더라구요. 쉽게말하면 3목입니다. 

오목은 5개의 돌이 가로 세로 혹은 대각선으로 이어지면 되는데 틱택토는 마찬가지로 3개만 이어지면 됩니다

 

그래서 틱택토의 경우의 수는 9! = 362,880 입니다. 개발 목표는 사용자가 놓은 수에 따라 인공지능이 최적의 수를 선택하여 게임을 진행하면 되겠습니다.

 

예전이라면 많이 어려웠겠지만 인공지능 수업 덕분에 미니맥스 알고리즘으로 틱택토 게임을 구현하는데 도움이 되었네요.

먼저 파이썬으로 틱택토 인공지능을 구현하고 안드로이드 스튜디오에서 자바 코드로 변환하는 과정을 거쳐서

안드로이드 앱에 UI를 넣고 터치를 하면 X (사용자 턴)를 칠하는 기능을 구현했습니다.

 

 

실제 구동 영상입니다. 틱택토 게임은 3 X 3 타일에서 진행되는 게임이므로 서로 최상의 수를 선택한다면 항상 비기는 게임이됩니다.. 그래서 이걸로 부스 전시를 한다면 항상 비기는 게임이 되거나 지는 게임이 될텐데

그러면 별로 재미는 없겠죠 그래서 난이도 조절이 필요했습니다

 

 

5% 확률로 AI는 엉뚱한 수를 두는 코드를 넣게 되면 가끔은 사용자가 이기겠죠... 다음에 방학에 앱을 좀 더 업그레이드 해서 메뉴도 만들고 타이틀도 만들고 딱히 별 기능은 없지만 인터넷 없이 동작 가능한 틱택토 인공지능 게임으로 출시를 해보려고 합니다.

 

 

지금은 부스 전시용으로 앱을 만든거라 딱히 기능은 틱택토 인공지능과 타일 터치 기능, 순전히 틱택토 관련 기능만 만들었습니다. 차차 업그레이드를 하거나 아니면 여기서 뭍히겠죠 ㅎㅎ  

 

 

타일 터치는 버튼말고 TableLayout에 TextView를 넣어서 온클릭 리스너로 만들었습니다... 그리고 백그라운드로 조금 꾸미니 나름 괜찮더군요

 

 

틱택토에 대한 일반적인 코드는 인터넷에도 많고 gpt에게 부탁해도 쉽게 나오니까 따로 코드를 전부 설명하는건 피해야겠습니다

 

 

그냥 이제 틱택토 인공지능 코드만 살짝 올려놓겠습니다. 미니맥스 알고리즘으로 만들었고 간단하게 설명하면 자신에게는 최선의 수를 선택하게끔하고 상대에게는 그 반대으 수를 선택하게끔 하는 알고리즘이죠 

 

다음에 앱을 업데이트 하면 그때 또 일지를 남겨야겠네요

아무튼 부스하면서 잘돼서 다행이다!

 

728x90
반응형