본문 바로가기

Program/My program

테트리스 인공지능 대전(?)

작년 가을이었지 싶다.
문제해결기법이라는 과목에 조교를 했었는데, 그 과목의 마지막에는 기말 프로젝트로
인공지능 프로그래밍 대결을 하곤 했다.
좀 재미있는걸 하고 싶어서, 내가 만든 걸 애들이 하게 하고 싶어서 조교 배정되었을 초반부터 기대를 많이 했었다.
마지막 조교활동이기도 했고...
대빵조교에게 내가 기말 프로젝트에 사용할 게임을 만들겠다고 건의하였고 
그래서 만든게 이름하야 '대전 테트리스'ㅎ;
한게임 테트리스를 모방(?)하여, 학생들이 만든 인공지능을 통해 테트리스가 동작하도록 만들었다.
게임에 사용된 리소스는 한게임 테트리스의 리소스 파일을 추출해서 사용하였다.
UI도 포토샵으로 샤샤샥~해서 1:1대전용 UI를 만들었다.
사실 이것 땜에 이렇게 글을 올리기도 꺼려했었는데.. 이 글 올리기 전에 저작권 관련된 사안으로 살짝 고심을 했었다. 

저작권법 제 25 조 (학교교육목적 등에의 이용)
제 32 조 (시험문제로서의 복제)
학교의 입학시험 그 밖에 학식 및 기능에 관한 시험 또는 검정을 위하여 필요한 경우에는 그 목적을 위하여 정당한 범위 안에서 공표된 저작물을 복제할 수 있다. 다만, 영리를 목적으로 하는 경우에는 그러하지 아니하다.

에 따르면 영리 목적이 아니니 괜찮지 않을까 하는 생각에 공개한다(제 블로그엔 구글 애드센스도 안달았어요ㅜㅜ)
(위 문서와 게임 안에서 사용된 이미지 파일과 음악에 대한 권리는 NHN에 있습니다...ㅜㅜ.. 아.. 연아그림은..연아와 디씨인싸이드의 어느 누군가에게 있어요; )

이렇게 해서 시작된 기말 프로젝트 최종 발표의 현장!!
나의 포토샵 신공으로 졸지에 한게임 테트리스의 '신'이 되어버린 학생들은 그들만의 리그를 펼쳤다ㅋ




게임은 어느 정도 만족스럽게 진행이 되었다.
다만 아쉬운점은 난이도 조절에 실패하였다는 것.
한게임 테트리스 고수들의 실력에 눈이 높아졌던 나는, 학생들도 콤보 위주로 경기를 할거라 예상했고(근데 그 당시의 나처럼 테트리스 좋아하는 학생들은 별로 없었을것 같다; ), 컴퓨터가 계산할 터이니 상당히 많은 콤보가 나오지 않을까 하는 생각에 콤보로 인해 경기가 너무 빨리 끝나는 것을 막으려고 실제 한게임 테트리스에서 1:1로 게임을 할 때의 콤보로 인한 방해블록 라인 수보다 1/2 이상 적은 방해블록으로 상대방을 공격하도록 규칙을 정하였다. 그러다 보니 학생들은 콤보를 통한 공격 보다는 현재 쌓여있는 블록들을 없애기 위한 알고리즘에 주력한 듯 하다. 이 규칙으로 인해 경기가 느슨해지는것을 막으려고 특정시간이 지날 때마다 방해블록이 쌓이도록 하였는데도 역부족이었다.
난 멋진 콤보들의 향연을 보고 싶었는데 ㅜㅜ
지금 생각해보면 어차피 두 플레이어가 동일한 상황이고, 콤보 규칙을 원래 한게임 규칙 그대로 가져갔으면 대결이 더 박진감이 있었을 것 같다. 한끝 차이가 승부를 좌우했을테니.
내가 잘잘 잘못했어~~~♬('잘못했어' - 2AM)

아무튼 학생들이 잘 해주어서 좋았고 스스로도 약간의 부족함이 있긴 하지만 만족스러웠다:)