ダメージ計算をしよう
主人公が敵に攻撃します。敵のHPから攻撃力を引くだけ。enemy_hp = enemy_hp - player_atk でダメージが入ります。
🧠 できるようになること
- ダメージを引き算で表現できる
- 戦闘の基本ロジックが書ける
- HPが減る様子を表示できる
🧰 用意するもの
- パソコン
- ブラウザ(Chrome / Edge / Safari)
- インターネット接続
- Trinket(https://trinket.io/python)
🖼 できあがり
「攻撃した!」のメッセージとともに、敵のHPが減って表示されます。1回攻撃の結果。
📺 実行結果
🔵 スライムが現れた! ⚔ あなたの攻撃! スライムに 20 のダメージ! スライムのHP: 30 → 10
🚀 やりかた
- プレイヤーと敵の変数を用意。
damage = player_atkで計算。enemy_hp = enemy_hp - damage(またはenemy_hp -= damage)。- ダメージとHP変化を表示。
🐍 きょうのコード
Python
main.py
player_atk = 20
enemy_name = "スライム"
enemy_hp = 30
print(f"🔵 {enemy_name}が現れた!")
print()
print("⚔ あなたの攻撃!")
damage = player_atk
old_hp = enemy_hp
enemy_hp -= damage
print(f"{enemy_name}に {damage} のダメージ!")
print(f"{enemy_name}のHP: {old_hp} → {enemy_hp}")
上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。
💡 きょうのポイント
戦闘の本質は引き算。HP -= ダメージ。これを何度もくりかえせばHP0になり、敵が倒れる。次回はくりかえし(ターン制)にして本格戦闘に進化。
🎮 チャレンジ
- 防御力を考慮しよう(
damage = player_atk - enemy_def) - ダメージが0以下にならないよう
max(0, damage) - プレイヤーが2回攻撃するパターンを書こう
🔁 ふりかえり
-=は何の短縮形?- 実際のRPGのダメージ計算はもっと複雑。どんな要素があると思う?
- 次回はターン制。何が変わる?
👨👩👧 おうちの人・先生へ
- 準備:なし。
- つまずきポイント:
enemy_hp -= damageの-=。+=と対の関係。 - 声かけ例:「これでもう戦闘できる」のワクワク感を共有。