在 Tic-Tac-Toe 游戏中,可能会出现一些逻辑错误,例如判断胜利的代码可能不完善,导致无法正确地判断游戏的胜负。为了解决这些问题,可以参考以下代码示例:
- 正确判断游戏胜负的代码:
def check_win(board):
# 检查行是否匹配
for row in board:
if row.count(row[0]) == len(row) and row[0] != 0:
return row[0]
# 检查列是否匹配
for col in range(len(board[0])):
if all(board[row][col] == board[0][col] and board[col][0] != 0 for row in range(len(board))):
return board[0][col]
# 检查对角线是否匹配
if all(board[i][i] == board[0][0] and board[0][0] != 0 for i in range(len(board))):
return board[0][0]
if all(board[i][len(board)-i-1] == board[0][len(board)-1] and board[0][len(board)-1] != 0 for i in range(len(board))):
return board[0][len(board)-1]
# 如果没有匹配项,则返回 0
return 0
- 避免出现无限循环的代码:
def play_game():
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
player = 1
while True:
# 逐行逐列地打印棋盘
for row in board:
print(row)
row_choice = int(input("Player " + str(player) + ", choose row: "))
col_choice = int(input("Player " + str(player) + ", choose column: "))
# 验证玩家的输入是否合法