728x90
이 페이지에는 터미널에서 실행 가능한 Python 기반 틱택토 게임 코드가 포함되어 있습니다. 3×3 보드 위에서 플레이어 X와 O가 번갈아가며 위치를 선택하고, 승리 조건 또는 무승부를 확인합니다. 아래 코드를 복사해 tictactoe.py 파일로 저장한 후, python tictactoe.py로 실행하세요.
# tictactoe.py
def print_board(board):
print()
for row in board:
print(' | '.join(row))
print('-' * 9)
print()
def check_winner(board, player):
# 가로, 세로, 대각선 확인
win_states = [
[board[0][0], board[0][1], board[0][2]],
[board[1][0], board[1][1], board[1][2]],
[board[2][0], board[2][1], board[2][2]],
[board[0][0], board[1][0], board[2][0]],
[board[0][1], board[1][1], board[2][1]],
[board[0][2], board[1][2], board[2][2]],
[board[0][0], board[1][1], board[2][2]],
[board[0][2], board[1][1], board[2][0]],
]
return [player, player, player] in win_states
def is_board_full(board):
return all(cell != ' ' for row in board for cell in row)
def main():
board = [[' ' for _ in range(3)] for _ in range(3)]
current_player = 'X'
while True:
print_board(board)
print(f"플레이어 {current_player} 차례입니다.")
try:
move = input("위치 선택 (row,col 예: 1,3): ")
row, col = map(int, move.split(','))
if row < 1 or row > 3 or col < 1 or col > 3:
print("1에서 3 사이의 숫자를 입력하세요.")
continue
if board[row-1][col-1] != ' ':
print("이미 선택된 칸입니다. 다른 곳을 선택하세요.")
continue
board[row-1][col-1] = current_player
except ValueError:
print("올바른 형식이 아닙니다. 예: 2,1")
continue
# 승리 확인
if check_winner(board, current_player):
print_board(board)
print(f"축하합니다! 플레이어 {current_player}가 이겼습니다!")
break
# 무승부 확인
if is_board_full(board):
print_board(board)
print("무승부입니다!")
break
# 플레이어 교체
current_player = 'O' if current_player == 'X' else 'X'
if __name__ == "__main__":
main()
반응형
'08.개발&프로그래밍 > 1.파이썬' 카테고리의 다른 글
| 3. Python Pong Game (퐁 게임) (0) | 2025.07.18 |
|---|---|
| 2. Python Snake Game (뱀 게임) (0) | 2025.07.18 |
| 15. Python Logical Errors(로직 오류) 완벽 가이드 (0) | 2025.07.18 |
| 14. Python MemoryError & OverflowError(메모리/산술 오버플로우) 완벽 가이드 (0) | 2025.07.18 |
| 13. Python UnicodeError(인코딩·디코딩 오류) 완벽 가이드 (0) | 2025.07.18 |