2011-04-07 91 views
1
def solveMaze(win, board): 
    mazesol.removeDeadEnds(win, board) 

我需要調用mazesol.removeDeadends(win,board),直到它返回0。這是函數的功能:我需要調用一個函數,直到它返回0 python

此函數將窗口作爲其第一個參數,並將板用作其第二個參數。它掃描完整的板(跳過第一行和最後一行以及第一列和最後一列),並將每個位置作爲鄰居轉換爲一條路徑,並將其轉換爲死路。它返回已轉換的死端數量。

+0

四個好答案。歡迎來到StackOverflow! – 2011-04-07 01:01:26

回答

1

我想這是你想要的東西:

while mazesol.removeDeadEnds(win, board) != 0: 
    pass 
+0

非常感謝你:) – Jostlyn 2011-04-07 01:06:29

6

是不是有什麼毛病:

while mazesol.removeDeadends(win,board): pass 

while mazesol.removeDeadends(win,board): print ".", 

a = 1 
while a: 
    a = mazesol.removeDeadends(win,board) 
    print "Removed", a 
+0

我編輯了你的答案 - 你應該使用「代碼」按鈕代替格式的「引用」按鈕,因爲它也提供語法高亮顯示。 – Femaref 2011-04-07 00:55:39

+0

我在同一時間編輯它。應該看過預覽。 – 2011-04-07 00:56:33

+0

儘管我知道這在實踐中可能並不重要,但如果removeDeadends可能返回非數字值,那麼第一個循環可能會提前終止,例如,如果函數返回「False」。這就是爲什麼我在回答中使用'!= 0'的原因。 – 2011-04-07 04:07:50

1

快速和骯髒

result = mazesol.removeDeadends(win,board) 
while not result: 
    result = mazesol.removeDeadends(win,board) 
0

你可以用一個無限做到這一點,同時循環,如果返回0,打破:僅需9分鐘

While True: 
    result = mazesol.removeDeadends(win,board) 
    if result == 0: 
     break 
相關問題