【发布时间】:2017-04-15 10:32:12
【问题描述】:
我正在尝试在我的井字游戏程序中编写一个函数,用于检查网格上一行中的所有三个空格是否已标记为“x”或“o”。 lst_1 是所有可能的行组合的列表:
def conc():
global lst
lst_1 = [[lst[0],lst[1],lst[2]],[lst[3],lst[4],lst[5]],[lst[6],lst[7],lst[8]],[lst[0],lst[3],lst[6]],[lst[1],lst[4],lst[7]], [lst[2],lst[5],lst[8]],[lst[0],lst[4],lst[8]],[lst[2],lst[4],lst[6]], [lst[0],lst[1],lst[2]],[lst[3],lst[4],lst[5]],[lst[0],lst[3],lst[6]], [lst[1],lst[4],lst[7]],[lst[2],lst[5],lst[8]],[lst[0],lst[4],lst[8]], [lst[2],lst[4],lst[6]]]
triplet = [s for s in lst_1]
if all('o' == item for item in triplet):
print('Player 2 wins!')
reply()
elif all('x' == item for item in triplet):
print('Player 1 wins!')
reply()
else:
pass
我认为当有人设法连续获得 3 个时这会停止游戏,但它继续进行。有什么想法吗?
【问题讨论】:
-
我认为您在
lst_1中有一些额外的数据,这会搞砸。 -
您的
all()电话也缺少一些关键部分。 -
您的缩进已关闭,这在 Python 中至关重要。您的变量
triplet似乎与lst_1相同。你没有告诉我们reply()是什么或做什么。请参阅How to create a Minimal, Complete, and Verifiable example。
标签: python list function nested