我正在尝试在python中构建一个tic tac toe游戏,在这个阶段我找到一个横向赢家。程序中的所有内容目前都是硬编码的。根据现在的游戏列表,第一行应该是胜利者,但输出是错误的。
我试图迭代行中的每个元素,但后来遇到了这个count(),但它似乎不起作用
game=[[1,1,1],
[0,2,0],
[2,2,0 ]]
def win(current_game):
for row in current_game:
print(row)
if (row.count(row[0]==len(row))==True):
print("winner", row[0])
win(game)
我得到的输出是: -
[1, 1, 1]
[0, 2, 0]
[2, 2, 0]
winner 2
但正确的输出应该是: -
[1,1,1]
winner 1
[0,2,0]
[2,2,0]
根据我的理解,row.count(obj)
返回obj
在row
对象中出现的次数。 Reference
因此,row[0]==len(row)
是一个比较并返回true
或false
在这里没有意义。在row.count(row[0]==len(row))
你正在检查true
或false
是否发生在row
而不是数字。
你想要的是检查你的列表中的第一个项目是否出现三次(或列表的长度)。
def win(current_game):
for row in current_game:
print(row)
if (len(row) == row.count(row[0])):
print("winner", row[0])