python tic tac toe赢得条件

时间:2016-11-12 02:43:57

标签: python

我正在编写一个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语句来确定抽奖?

1 个答案:

答案 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()检查那:你对胜利的检查减少到一个复杂的代码行。