파이썬 장기-게임
제작동기
4차 산업혁명의 대두와 함께 AI 영역 또한 빠르게 발전하고 있습니다. 알파고와 이세돌이 겨룬 바둑 경기, 딥블루와 카프카로스가 겨룬 체스 경기 등 AI의 발전된 성능을 확실하게 알 수 있는 경기들을 보아왔습니다. 그렇기에 AI의 근간이 되는 코딩에 대해 자세하게 배우고 싶어 직접 장기 게임을 만들어 코딩을 배우기로 했습니다.
작품소개
우리가 아는 그 장기 게임이 맞습니다. 플레이어 2명이 서로 번갈아가면서 장기말을 움직여 상대방의 왕을 잡으면 이기는 장기 게임입니다. 장기말을 선택할 때에는 좌표를 선택하게 만들었습니다. 장기 게임을 만들 때에는 파이썬이라는 프로그래밍 언어로 만들었습니다.
작품의 구성
- 코드는 크게 ui와 모듈로 나누어져 있습니다.
- ui에서는 tkinter을 이용하여 ui를 띄우게 만든 후, 좌표를 입력받는 곳과 승리 조건만 있게 만들었습니다.
- module에서는 ui에서 입력받은 값에 따라 장기말이 움직이도록 다수의 함수를 넣었습니다. 플레이어를 구분하는 함수, 입력받은 값이 무슨 장기말인지를 판단하는 함수, 장기말에 따라 움직일 수 있는 칸을 제한시키는 함수, 잘못된 칸을 선택하면 다시 입력하게 하는 함수 등을 넣었습니다.
- 플레이어들이 장기말을 입력하여 움직이게 한 후, 턴이 지나면 ui가 출력됩니다.
- 이후 한 쪽의 왕이 죽을 때까지 반복됩니다.
작품의 동작 결과
이렇게 입력 후 ui가 띄워지지만.. 작품 제출일이 되어도 해결하지 못한 오류가 있었습니다. 코드 내부 상으로는 장기말이 제대로 움직이지만 움직인 장기말이 ui에서는 표시되지 않는 오류가 해결되지 않았습니다.
세부적인 코드는 이 링크로 가시면 나옵니다: 전체 코드
결론과 작품 후기
- 장기 게임을 만드는 데에도 수많은 코드가 넣어져야 간단한 말의 움직임을 구현할 수 있음을 알 수 있었습니다.
- 제출일까지 ui와 코드의 연결에 대한 오류를 해결하지 못한 점은 매우 아쉬웠습니다.
- ui와 module이 제대로 연결될 수 있게 함수를 추가하는 등의 방법을 통해 매끄럽게 작동되는 장기 게임의 개발이 가능할 것으로 보입니다.
- 하지만 작품 제작을 통해 얻은 노하우와 지식들은 분명 유용하게 쓰일 수 있다고 생각합니다.