이제부터 본격적인 게임을 분석해볼 시간인데요. 틱택토 게임의 원리는 앞서 함수형편에서 소개한것과 같습니다. 다만 판의 크기를 크게하고 승률 조건을 3개의 나열이 아닌 그 이상 설정할 수 있습니다. 여기서는 기본값 5를 설정하고 있습니다. 따라서 어느 방향이든 순서대로 5개가 나열되어 있다면 승리 조건이 됩니다.
이 게임에서는 인간대 인간이 아닌 인간 대 Ai 의 모드를 추가적으로 가지고 있으며 단순한 랜덤 알고리즘과 min-max 알고리즘을 통해 게임을 할 수 있도록 합니다.
초기화면
다음과 같이 초기에는 메뉴화면을 위해 MainMenuView를 통해서 3개의 메뉴를 고를 수 있습니다. 단순히 게임 타이틀과 3개의 버튼을 수직으로 배열하고 있습니다.
게임 형식은 3가지로 인간 대 인간, 인간 대 Ai, Ai 대 Ai로 선택할 수 있습니다. 만일 Ai가 포함된 메뉴를 선택하는 경우 아래와 같이 Ai의 알고리즘을 고를 수 있도록 합니다.
Ai 알고리즘 선택화면
Human vs Ai를 선택한 화면으로 Ai의 알고리즘을 RandomAi나 Minimax중 선택하도록 리스트 화면에 구성하였습니다. 만일 Ai vs Ai를 선택하면 양쪽에 리스트를 나타내고 서로 알고리즘을 선택할 수 있게 됩니다.
게임의 실행
게임 실행 화면은 초기값으로 설정된 그리드 크기에 따라서 만들어지며 게임을 진행하게 되고 승리 조건이 완성되면 줄을 그리고 멈춥니다.
게임 진행 화면은 코드에서 설정된 크기의 보드를 기본적으로 그리며 하단에 메인메뉴, 보드판을 새로 초기화 하기 위한 Reset 버튼을 배치합니다.
생각해야할 부분
아직 Ai 부분이 미흡하며 코드가 아닌 초기 화면에서 보드의 크기를 설정할 수 있도록 해야겠습니다. 승리 조건이 완성되면 하단에 누가 승리했는지 승리 메시지를 표시하도록 하는것도 좋겠습니다.
comment