タイトルが紛らわしくてすみません。そして、私が間違った用語を使用している場合。先週コーディングを始めたばかりです。
テキストアドベンチャーゲームのボス戦用のサイコロを振る関数を書いていますが、サイコロ関数で関数の外側の元のグローバル変数を使用し、数値を減算して関数内で報告することはできますが、そうではありません関数の実行後にグローバル変数を更新します。そのため、次に関数を呼び出そうとすると、元の値が再び使用され、そもそもそこにサイコロを配置するという目的が完全に無効になります。(ボスを殺すことはできません、笑)
これが私がデバッグしようとして遊んできたものです。前もって感謝します!
player = "Dib"
playerhealth = 3
boss = "Zim"
bosshealth = 5
import random
def dice(who, whohealth):
min = 1
max = 3
dice = random.randint(min, max)
if dice == 1:
print "Your opponent lost no health"
print "Your opponent has %d health" % whohealth
elif dice == 2:
print "%s hits" % who
whohealth = whohealth - 1
print "Your opponent lost 1 health"
print "Your opponent has %d health" % whohealth
elif dice == 3:
print "%s crits" % who
whohealth = whohealth - 2
print "Your opponent lost 2 health"
print "Your opponent has %d health" % whohealth
else:
print "stuff"
dice(player, bosshealth)
dice(player, bosshealth)
dice(boss, playerhealth)
dice(boss, playerhealth)