2017-07-26 7 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() 

下のセクションでは、私がしようとすると、プレーヤーの健康がゼロになったときに、コードストップ稼動を作るために書いたものですが、それはしていません。私のコードの先頭にある私の辞書には、次のようになります動作するようです。私のゲームの1回のパスでは、あなたの健康はゼロに設定されますし、ゲームが終了になっているが、プログラムは実行され続け:

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 

あなたがゲームのこの部分に達すると、それがないすべてが印刷されメッセージを受信し、次の決定に移ります。このような状況では、printコマンドの下でexit()を実行するだけで手動でプログラムを終了できますが、プレイヤーの健康状態の一部が失われ、最終的にゼロになる状況があります。申し訳ありませんが、これは愚かな質問ですが、私は数日間Pythonに取り組んできました。

+1

playerAtt ['Health'] == 0'は0に設定されません。 – depperm

+0

を試してください。また、その文が継続的にテストされているわけではありません。彼はそれを失い、一回のテストではうまくいかない。 –

答えて

0

次の2つの「=」あなたは0

0

にプレイヤーの健康を設定したときに、私は1 =の2 ==代わりに入れていた。また

playerAtt["Health"]. 

を定義するときには、私はそれを確信していた行うために必要な必要がありプレーヤーの健康状態が常にゼロかどうかを常時チェックしていますので、whileループを使用しました。私は

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

を修正しました。 deathMsgは、私がランダムな死のメッセージを表示するために作った関数でした。

関連する問題