我试图在我的tic-tac-toe程序中编写一个函数,检查网格中一行中的所有三个空格是否标记为'x's'或'o's'。 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'里面有一些额外的数据,这些东西都搞乱了。 – TigerhawkT3
你的'all()'调用也缺少一些关键部分。 – TigerhawkT3
您的缩进已关闭,这在Python中非常重要。你的变量'triplet'好像和'lst_1'一样。你不会告诉我们'reply()'是什么或者做了什么。请参阅[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –