我想要 N 個嵌套的 for 回圈,最后一個 for 回圈應該有,number = 1而其他一切都應該有,push(move)并且應該以 aundo()我看到了一種用另一種語言解決的方法,該語言說的是遞回。
以下示例 if for 5 for 回圈:
number = 0
for move in all_legal_moves():
push(move)
for move2 in all_legal_moves():
push(move2)
for move3 in all_legal_moves():
push(move3)
for move4 in all_legal_moves():
push(move4)
for move5 in all_legal_moves():
number = 1
undo()
undo()
undo()
undo()
我想要一個函式,它采用深度(嵌套 for 回圈(N)的數量)并回傳number。我更喜歡不匯入任何庫的答案
uj5u.com熱心網友回復:
遞回只是一個函式不斷呼叫自己,直到滿足特定條件。您可以在此處了解更多資訊。我認為在這種情況下,您可以通過讓上面的代碼遞回push 轉到另一個遞回級別 undo或number = 1檢查當前回圈級別(level在下面的代碼中)是否等于N(max_level在下面的代碼中)
number = 0
def moves(level, max_level):
global number
if level < max_level:
for move in all_legal_moves():
push(move)
moves(level 1, max_level)
undo()
else:
number = 1
moves(move, 1, 5)
print('Number of possible moves:', number)
或者,如果您不想將其number作為全域變數,則可以讓函式回傳可能的迭代次數
def moves(level, max_level):
number = 0
if level < max_level:
for move in all_legal_moves():
push(move)
number = moves(level 1, max_level)
undo()
else:
number = 1
return number
number_of_possible_moves = moves(move, 1, 5)
print('Number of possible moves', number_of_possible_moves)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/334074.html
下一篇:簡單關系遞回
