[2학년 여름방학 프로젝트]오목AI프로젝트

윤태웅·2021년 7월 25일
0

프로젝트

목록 보기
1/12

계기

그냥 흔히 접할 수 있는 퍼즐게임 인공지능 프로그램들이 어떻게 구현되어있나 궁금했고
구현하고 싶었다.

개발기간

2021.06.23 ~ 2021.07.25(미완성)

Github주소

https://github.com/yuntaewoong/gomokuAI

개발내용


pvp게임모드(완성)
ai게임모드(미완성)

개발중단사유

minimax알고리즘을 적용하고 노드를 마구마구 만들다 보니 ai의 소모시간과 램점유율이 급증하는
현상이 발생했다.
이것을 해결해야 진짜 개발자라는 마음가짐으로 1주일넘게 문제해결에 열중했지만 문제점 몇가지만
파악하는 정도의 성과밖에 내지못했다.
이렇게 시간만 낭비할바에야 숙련된 개발실력을 가지고 있을 미래의 나에게 이 문제를 넘기는게 좋다고 판단했다.

배운것들

외부 라이브러리 사용법

기존에는 외부 라이브러리에 관한 지식이 거의 없었다. unity게임엔진을 이용해서 게임로직을 개발하는것만 주로 해왔는데, 이렇게 외부 라이브러리를 직접세팅하고 개발하는 과정을 해보는게 좋은 경험이 되었다.
사용 라이브러리: SDL.dll

동적할당한 메모리해제의 중요성

개발하면서 테스트하다보니 램점유율이 미친듯이 치솟을때가 많았다. 폰트를 open했는데 close를 안했다던가 new로 동적할당한 메모리를 delete를 안해준다거나 하는게 원인이었다. 이론상 메모리해제의 중요성은 알고있었지만 실제 프로그램 성능에 영향을 주는 현상을 경험하니 중요성을 더 실감하게 되었다.

minimax알고리즘

ai알고리즘중 하나인 minimax알고리즘을 구현해봤다. 물론 현재 프로젝트는 tree높이가 1단계인
흉내만 낸 수준의 알고리즘이 적용되어있지만 동작은 한다.. 1대1 퍼즐게임에서 컴퓨터는 어떻게 자신의 수를 계산하고 있었는지를 알게되었다.

0개의 댓글