我正在構建一個遊戲作爲學習代碼教程的一部分。雖然循環似乎沒有正確檢查條件
以下類有一個while循環,它應該返回'finished',或者離開循環並返回'death'(這些是運行遊戲的字典條目),但似乎並不運行。我正在看while循環後def guess:
該循環的目的是要求用戶猜測1和3之間的數字。如果他們猜錯了三次以上,他們會「返回」和「死亡」,否則「結束」。
但是,當我玩遊戲時,我甚至沒有提示輸入數字,而是「太多失敗的猜測,你輸了!」打印,即使猜測是0
class Smaug(Scene):
def enter(self):
print "Smaug is a terrifying huge fire breathing dragon, but you must get the Arkenstone from him for Thorin"
print "In Smaug's cave, the Lonely Mountain, Smaug notices your presence and challenges you to a game"
print "He says \"Guess a number between 1 and 3\""
smaugNum = random.randint(1, 3)
print "Smaugs number cheat:", smaugNum
guesses = 0
def guess():
while guesses < 4:
print "Guess a number between 1 and 3"
numb = raw_input("> ")
if numb == smaugNum:
print "Well done! You win."
Player.BilbosStuff.append('arkenstone')
print "Now Bilbo has", Player.BilbosStuff
return 'finished'
else:
print "You lose!"
guesses += 1
guess()
print "Too many failed guesses, you lose!"
return 'death'
看代碼塊的嵌套,難道是當「完成」 while循環返回,它也會自動獲得返回的一部分更廣泛的課堂?換句話說,如果麻木== smaugNum,那麼我需要Smaug類來完成。
你永遠不調用該函數 – M4rtini
'guess'不會被調用在此代碼... – darthbith
這是縮進了吧? –