1
我有一個array
,它包含9個字符變量。我使用for
循環將它們打印成3行。我想檢查連續3個變量中的2個是否相同,並創建將改變第三個變量以匹配其他變量的函數。
我想垂直和水平都做。
我是否必須將陣列更改爲二維陣列?
這會讓我改變將近一半的代碼。
是否有機會,我就不必手動編寫if
聲明是這樣的:Python檢查列表中的項是否空閒
if array[0] == array[1]:
change the_third_var
elif array[1] == array[2]:
change the_first_var
elif array[0] == array[2]:
change the_sec_var
,但它會檢查它會自動使用for
或任何其他循環?
該解決方案能幫助我簡化下面的代碼(可選)嗎?
def check_winner(pl_array, player_choice, computer_choice):
vertical = [2, 5, 8]
diagonal = [6, 7, 8]
# checking vertical lines
for each in vertical:
if pl_array[each - 2] == pl_array[each - 1] == pl_array[each]:
if pl_array[each] == player_choice or pl_array[each] == computer_choice:
return True
# checking diagonal lines
for every in diagonal:
if pl_array[every - 6] == pl_array[every - 3] == pl_array[every]:
if pl_array[every] == player_choice or pl_array[every] == computer_choice:
return True
# across
if pl_array[8] == pl_array[4] == pl_array[0]:
if pl_array[8] == player_choice or pl_array[8] == computer_choice:
return True
elif pl_array[6] == pl_array[4] == pl_array[2]:
if pl_array[6] == player_choice or pl_array[2] == computer_choice:
return True
else:
return False
任何幫助表示讚賞。
可以更新一些樣品的輸入和輸出你的問題? –
它看起來像你試圖得分井字遊戲。 [在這裏是一個實現](https://inventwithpython.com/chapter10.html),當我在Google搜索「Python tic tac toe」時找到了。 –