Python3初心者です。Python3の練習として、RPGのような戦闘シーンを模しています。
目的を2段階に分けて、今直面している問題点をまとめてみました。
1)最初は敵を1体だけ用意して、enemyHpとしてそのHPを表示。ランダムに10までの数字を表示させ、仲間に攻撃させる。それをenemyHpが0になるまで続けて欲しい。
それの問題点)どうやらですが、enemyHpの位置が悪いため、(ローカル変数?)エラーが出ました。enemyHpをattack関数の中に入れると反応はするのですが、それだとfor friend in friendsのなかで毎回攻撃の度に敵を倒したと出てしまいます。
2)それを乗り越えたら、敵を複数出現させたい。味方に3体の敵のうちランダムで選んで敵を襲ってもらいたい。辞書型で以下のようにHPも管理できるかなと予想。
enemies = {"ワイト":70, "ガーゴイル":120, "ナイト":140}
それの問題点)辞書の参照はキーを指定することで行われる?
最初は、0~2のランダムな数値を変数に入れて、ran = random.randint(0,2)のようにして、enemies[ran](これも正しい書き方かはわかりませんが)のようにすればいいのかなと思っていました。ただしHPまで言及ができないことに気づいて、試行錯誤中です。
こちらで解決できるように頑張りますが、助言をいただけると幸いです。
#バトルシーン
import random friends = ["勇者", "魔法使い", "武闘家"] enemyHp = 100 def attack(friend): damage = random.randint(1, 10) print("モンスターに" + str(damage) + "のダメージを与えた") enemyHp -= damage for friend in friends: while enemyHp > 0: attack(friend) print("モンスターを倒した")
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/09 15:47