我正在尝试用python构建井字游戏,在这个阶段我正在寻找横向赢家。程序中的所有内容目前都经过硬编码。 根据目前的游戏列表,第一行应该是获胜者,但输出错误。
我试图遍历该行中的每个元素,但随后遇到了这个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]
答案 0 :(得分:4)
据我了解,row.count(obj)
返回obj
对象中row
发生了多少次。 Reference
因此,row[0]==len(row)
是一个比较并返回true
或false
在这里没有意义。使用row.count(row[0]==len(row))
,您要检查true
中是否出现false
或row
而不是数字。
您要检查的是列表中的第一项是否出现了3次(或列表的长度)。
def win(current_game):
for row in current_game:
print(row)
if (len(row) == row.count(row[0])):
print("winner", row[0])