【发布时间】:2021-09-26 05:34:13
【问题描述】:
我正在使用 Python 制作井字游戏,我几乎完成了,但我遇到了 while 循环的问题。这是我用来检查玩家是否拥有的函数的简化版本。
def check_win(board, marker):
win = False
if board['A1'] == marker and board['B1'] == marker and board['C1'] == marker:
print(f'{marker} wins!')
win = True
return win
这是在我的代码中。
player_win = False
while player_win == False:
# Player1's turn
board_dict = get_and_place_marker(board_dict, player1)
display_board(board_dict)
--> player_win = check_win(board_dict, player1)
# Player2's turn
board_dict = get_and_place_marker(board_dict, player2)
display_board(board_dict)
--> player_win = check_win(board_dict, player2)
在 check_win() 的第一个实例中,它确实将 player_win 分配给 True,但它不会退出循环。它转到 Player2 的代码,然后在 Player2 获胜时退出。我在这里做错了什么? player_win 被赋值为 True 的第一刻不应该退出循环吗?
【问题讨论】:
-
使用调试器。
-
在while循环的开始,它会检查player_win,然后在再次检查之前执行整个循环。您可以使用 if 语句和 break 语句在循环中间中断。
-
"player_win 被赋值为 True 的第一刻不应该退出循环吗?"你为什么这么相信?您最初是从哪里了解到 while 循环的,该来源告诉您检查发生的时间?
-
我投票结束这个问题,因为 Stack Overflow 无意取代现有的教程和文档。
标签: python while-loop boolean