① 게임을 진행할 때마다 업데이트된 보드를 출력해야 하므로 visual_Board() 함수를 호출하여 매번 쉽게 보드를 출력할 수 있도록 합니다.
이제 에이전트(플레이어)가 보드를 이동하여 게임을 진행하는 메인 함수를 정의합니다.
코드 12-11 보드 이동 함수 정의
def game(): ------ 플레이어의 보드 이동을 위한 함수
turn = 'X'
count = 0
for i in range(8):
visual_Board(boarder)
print("당신 차례입니다," + turn + ". 어디로 이동할까요?")
move = input()
if boarder[move] == ' ':
boarder[move] = turn
count += 1
else:
print("이미 채워져 있습니다.\n어디로 이동할까요?")
continue
if count >= 5: ------ 플레이어 X 또는 Y가 다섯 번 이동 후 이겼는지 확인
if boarder['1'] == boarder['2'] == boarder['3'] != ' ': ------ 상단 1, 2, 3이 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['4'] == boarder['5'] == boarder['6'] != ' ': ------ 중앙 4, 5, 6이 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['7'] == boarder['8'] == boarder['9'] != ' ': ------ 하단 7, 8, 9가 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['1'] == boarder['4'] == boarder['7'] != ' ': ------ 보드의 왼쪽 1, 4, 7이 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['2'] == boarder['5'] == boarder['8'] != ' ': ------ 보드의 중간 2, 5, 8이 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['3'] == boarder['6'] == boarder['9'] != ' ': ------ 보드의 오른쪽 3, 6, 9가 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['1'] == boarder['5'] == boarder['9'] != ' ': ------ 대각선 1, 5, 9가 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
elif boarder['3'] == boarder['5'] == boarder['7'] != ' ': ------ 대각선 3, 5, 7이 채워졌을 경우
visual_Board(boarder)
print("\n게임 종료.\n")
print(" ---------- " + turn + "가 승리했습니다. -----------")
break
if count == 9: ------ X, Y 모두 이기지 않고 보드가 꽉 차면 결과를 ‘동점(tie)’으로 선언
print("\n게임 종료.\n")
print("동점입니다")
if turn == 'X': ------ 움직임이 있을 때마다 플레이어 변경(X→Y, Y→X)
turn = 'Y'
else:
turn = 'X'
if __name__ == "__main__":
game()