我正在编写一个tic tac toe游戏的逻辑。
我已经检查了tic tac toe的所有获胜条件。
我现在需要检查游戏是否是平局。
board_values = [[x, x, x],
[None, None, None],
[None, None, None]]
#the if statement for that winning condition would be
if board_values[0][0]=='x' and board_values[1][0] =='x' and board_values[2][0]=='x':
board.display_message('player x won')
如何编写if
语句来确定抽奖?
答案 0 :(得分:2)
你会间接地这样做。如果棋盘已满,并且 玩家都没有赢,那么它就是平局。它将是你的if-elif-else语句的 else 子句。
if board_values[0][0] == 'x' and \
board_values[1][0] == 'x' and \
board_values[2][0] == 'x':
board.display_message('player x won')
elif board_values[0][0] == 'o' and \
board_values[1][0] == 'o' and \
board_values[2][0] == 'o':
board.display_message('player o won')
else:
board.display_message('The game is a draw')
当然,您必须延长对所有可能胜利的检查。
说到这里,有一种编码空间的简洁方法来帮助检查。而不是使用规范
1 2 3
4 5 6
7 8 9
将正方形编号为3x3魔方
6 7 2
1 5 9
8 3 4
现在你可以更有效地检查胜利:如果一个玩家拥有任意三个加起来为15的方格,那就是胜利。使用 itertools 生成这些3的集合,将其包装在地图(sum())中,然后拍一个 if any()检查那:你对胜利的检查减少到一个复杂的代码行。