我試圖在我的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)。 –