2017-07-26 55 views
-1

我一直在嘗試在Python中製作一個基本的文本遊戲,並且我正在使用字典來包含玩家的信息。我想這樣做,以便當玩家的健康狀況達到0時,代碼將停止運行。我遇到了麻煩。我的字典,這是在我的代碼的開始,看起來是這樣的:修改if語句中的字典

playerAtt = {} 
    playerAtt["Weapon"] = "Baseball bat" 
    playerAtt["Party"] = "Empty" 
    playerAtt["Health"] = 15 
    playerAtt["Cash"] = "$100" 
    print(playerAtt) 

    if playerAtt['Health'] <= 0: 
     exit() 

的底部是我寫的,試圖使代碼停止運行時,玩家的健康達到零,但它不似乎工作。在我的遊戲的一個路徑,您的健康被設置成零和遊戲應該結束,但程序繼續運行:

townChoice = raw_input("You met a traveler in the town. 'Yo. I'm Bob. Let's be friends.' Will you invite him to your party? Y/N\n") 

    if townChoice == 'y' or townChoice == 'Y': 
     print("That kind traveler was not such a kind traveler. He stabbed you with a machete. RIP " + Name + '.') 
     playerAtt['Health'] == 0 

當你到達這個遊戲的一部分,它是所有打印的消息,並轉向下一個決定。在這種情況下,我可以通過在打印命令下執行exit()來手動結束程序,但是在某些情況下,玩家只會失去一小部分健康狀態,並且最終會達到零。對不起,如果這是一個愚蠢的問題,我只在Python上工作了幾天。

+1

'playerAtt ['Health'] == 0' does not set it to 0 try with a''=' – depperm

+0

另外,如果陳述沒有持續測試,那麼除非您每次測試後都測試其健康狀況他失去了它,有一個單一的測試將無法正常工作。 –

回答

0

你有兩個「=」當您設置玩家的生命爲0

0

我已經把1 = 2 ==而不是定義

playerAtt["Health"]. 

時也,我需要確保它是經常檢查玩家的健康是否爲零,所以我用了一段時間的循環。我用

while playerAtt["Health"] = 0: 
     deathmsg() 
     exit() 

來解決它。 deathMsg是我用來顯示隨機死亡信息的函數,以獲取更多信息。