我想讓一個井字游戲用戶輸入一個行字串的所有列和行的Xs和Os,就像這樣'O_OOXOOXX'我把它們變成這樣的嵌套串列[['O','_','O' ], ['O', 'X', 'O'], ['O', 'X', 'X']]
我的問題是如何替換下面的所有 if elif?因為看起來很多。
for i in range(3):
if nested_list[i][0] == nested_list[i][1] == nested_list[i][2] == 'O':
print('O wins')
elif nested_list[0][i] == nested_list[1][i] == nested_list[2][i] == 'O':
print('O wins')
elif nested_list[0][0] == nested_list[1][1] == nested_list[2][2] == 'O':
print('O wins')
elif nested_list[0][2] == nested_list[1][1] == nested_list[2][0] == 'O':
print('O wins')
elif nested_list[i][0] == nested_list[i][1] == nested_list[i][2] == 'X':
print('X wins')
elif nested_list[0][i] == nested_list[1][i] == nested_list[2][i] == 'X':
print('X wins')
elif nested_list[0][0] == nested_list[1][1] == nested_list[2][2] == 'X':
print('X wins')
elif nested_list[0][2] == nested_list[1][1] == nested_list[2][0] == 'X':
print('X wins')
uj5u.com熱心網友回復:
可能有一個更好的解決方案,但也許是這樣的?
for i in range(3):
a = set(nested_list[i,:])
b = set(nested_list[:,i])
if(len(a) == 1 && nested_list[i,0] != '_')
print(nested_list[i,0], " wins")
elif(len(b) == 1 && nested_list[0,i] != '_')
print(nested_list[0,i], " wins")
if (((nested_list[0][0] == nested_list[1][1] == nested_list[2][2]) || nested_list[2][0] == nested_list[1][1] == nested_list[0][2])) && nested_list[1][1] != '_'):
print(nested_list[1][1], " wins")
uj5u.com熱心網友回復:
根據我所閱讀的內容,我設法做到了這一點,我會努力改進它
for i in range(3):
if nested_list[i][0] == nested_list[i][1] == nested_list[i][2]:
print(nested_list[i][0], ' wins')
elif nested_list[0][i] == nested_list[1][i] == nested_list[2][i]:
print(nested_list[0][i], ' wins')
elif nested_list[0][0] == nested_list[1][1] == nested_list[2][2]:
print(nested_list[0][0], ' wins')
elif nested_list[0][2] == nested_list[1][1] == nested_list[2][0]:
print(nested_list[0][2], ' wins')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/409732.html
標籤:
下一篇:Tkinter標簽走出窗外
