我正在Python
中构建一个简单的井字游戏。
我有一个包含10个空格的列表,我用X
或O
替换了每个行。我希望它能够告诉董事会什么时候满员,而且没有赢家。我已经列出了所有获胜的可能性,这是我尝试使它检查是否有平局的尝试。
for char in begin_board[1:10]:
if char != ' ':
print("It's a draw!")
这是错误的,因为它仅检查1
中的9
是否不是空格。我希望它检查并仅在所有9
不是空格的情况下返回打印。
谢谢!
答案 0 :(得分:0)
您可以通过检查列表not in
中的空字符串来检查是否定的。
if ' ' not in board:
# Board is full.
如果将''
用于空平方值,则也可以使用all()
来检查所有值是否都是True
。空字符串在Python中已经具有False
值,而其他任何字符串都是True
,因此您可以直接测试开发板。
>>> board = ['x', 'x', '']
>>> all(board)
False
>>> board = ['x', 'x', 'o']
>>> all(board)
您将其用作
if all(board):
# Board is full.
答案 1 :(得分:0)
首先,begin_board[1:10]
仅列出第二至第九。如果这是您要采取的行为,那么这很好,否则,如果您想要所有元素,那么只需在begin_board中为i进行操作,它将列出从第一到第十的所有元素
如果我们要使用自己的代码,则可以通过使用isDraw标志并检查是否还有空白空间来完成此操作。
for i in begin_board:
if char==' ':
isDraw = False
if (isDraw):
print("It's a draw!")
但是,更好的方法是计算列表中有多少空格。
if (begin_board.count(' ') == 0):
print("It's a draw")
另一种方法是简单地检查板上是否存在空间。
if ' ' not in begin_board:
print("It's a draw")