在这个井字游戏板中我想看看是X还是O赢了,我用的公式是for循环,我只是开始对行做这个,它没有给我想要的答案,我还能怎么写呢?
def win_check(board, mark):
for mark in board:
return (board[1:4] == board[4:7] == board[7:] == mark)
在我执行了上面的步骤之后,我检查是X还是O赢了,如下所示:
>>> win_check(board, 'O')
False
这应该是真的,因为我的棋盘有第7、8、9行是O。
1条答案
按热度按时间3htmauhk1#
win_check中的return函数意味着所有条件必须同时满足才能获胜,即board[1:4] == mark AND board[4:7] == mark AND board[7:] == mark。这将需要一个棋盘上都覆盖有相同的标记。您需要OR条件,因此您的代码应该如下:
还要注意的是,我已经把return语句移出了for循环。你不希望每次循环都返回。另外,你也不用像现在这样测试同一个元素的列表。使用all方法