だから私は「PythonTheHardWayを学ぶ」でPythonを学んでいます。現在、簡単なテキストアドベンチャーを書いています。
私の問題は、コードの「戦闘」部分にあります(以下に提供)。数字の1と2のみが、ユーザーが押すことを意図しています。別のintを押すと、「申し訳ありませんがわかりません」と正しくスローされますが、文字を押すと、びっくりして、intを期待していたと(当然のことながら)言って終了します。明らかに私の質問は、両方を期待するように設定し、文字が押されたときにエラーをスローするにはどうすればよいですか?
前もって感謝します :)
while True:
player_dmg = randint(1, 10)
enemy_dmg = randint(1, 10)
if enemy_hp < 0:
os.system('clear')
print "[ENEMY NUTRALISED]"
print
print hit_e
raw_input()
return 'forth_area'
elif player_hp < 0:
return 'death'
else:
print "[COMBAT OPTIONS]"
print "1. Attack"
print "2. Defend"
print
choice = raw_input("*>>*")
choice = int(choice)
print
if choice == 1:
enemy_hp = enemy_hp - player_dmg
print "[ENEMY STATUS: %d]" % enemy_hp
print "[DAMAGE DONE: %d]" % player_dmg
print
player_hp = player_hp - enemy_dmg
print "[DAMAGE RECIVED: %d]" % enemy_dmg
print "[CURRENT STATUS: %d]" % player_hp
elif choice == 2:
enemy_hp = enemy_hp - player_dmg / 2
print "[ENEMY STATUS %d]" % enemy_hp
print "[DAMAGE DONE %d]" % player_dmg
print
player_hp = player_hp - enemy_dmg
player_hp = player_hp + 3
print "[DAMAGE RECIVED: %d]" % enemy_dmg
print "[CURRENT STATUS: %d]" % player_hp
print
else:
print no_understand