📅  最后修改于: 2023-12-03 15:41:48.511000             🧑  作者: Mango
谜题38,也称为井字游戏,是一种双人对弈的游戏。游戏中,有一张3*3的棋盘,两个玩家轮流落子,先将自己的棋子连成一条线的玩家获胜。
我们可以使用一个3*3的二维数组来表示棋盘。数组的值可以是空格、X或O。
board = [
[' ', ' ', ' '],
[' ', ' ', ' '],
[' ', ' ', ' ']
]
玩家可以通过输入行号和列号来指定落子的位置。
def play(board, row, col, player):
if board[row][col] == ' ':
board[row][col] = player
return True
else:
return False
判断胜负可以根据棋盘上的行、列、对角线来判断。我们可以使用一个函数来检查某个玩家是否赢了:
def check_win(board, player):
for row in range(3):
if board[row][0] == board[row][1] == board[row][2] == player:
return True
for col in range(3):
if board[0][col] == board[1][col] == board[2][col] == player:
return True
if board[0][0] == board[1][1] == board[2][2] == player:
return True
if board[0][2] == board[1][1] == board[2][0] == player:
return True
return False
游戏的流程可以在一个while循环中完成。首先判断当前玩家是谁,让其输入落子位置。然后检查游戏是否结束,如果结束,输出胜负结果并退出游戏。
while True:
player = 'X' if turn % 2 == 0 else 'O'
print(f"Player {player}'s turn.")
row = int(input("Enter row number: "))
col = int(input("Enter column number: "))
if play(board, row, col, player):
draw_board(board)
if check_win(board, player):
print(f"Player {player} wins!")
break
if turn == 8:
print("It's a draw!")
break
turn += 1
else:
print("Invalid move. Please try again.")
谜题38,也称为井字游戏,是一款简单但富有趣味的双人对弈游戏。本文介绍了井字游戏的规则和实现思路,通过实现一个简单的井字游戏,我们可以加深对Python基础语法的理解,并锻炼编程思维。