デジタルこどもBASEのロゴ 特定非営利活動法人デジタルこどもBASE 📚 目次
第94回 Lv4 ⏱ 15〜20分

ポーションでHPを回復しよう

🎯 きょうのミッション

アイテムポーションを使うとHPが30回復します。items.remove("ポーション") で消費するのがコツ。

🧠 できるようになること

  • アイテムを使う処理が書ける
  • リストから値を削除(消費)できる
  • 戦闘中にアイテム使用ができるRPGに進化

🧰 用意するもの

  • パソコン
  • ブラウザ(Chrome / Edge / Safari)
  • インターネット接続
  • このページの「▶ このページで実行」ボタン(コードをそのまま動かせます)
  • Trinket(予備の実行サイト:https://trinket.io/python)

🖼 できあがり

戦闘中に「ポーションを使う」を選ぶと、HPが30回復し、ポーションが1つ減ります。

📺 実行結果
1: 攻撃 / 2: ポーション
> 2
💚 ポーションを使った!HP +30
あなたのHP: 50 → 80
持ち物:['ポーション']

🚀 やりかた

  1. 戦闘メニューに「2: ポーション」を追加。
  2. 選んだら if "ポーション" in items: でチェック。
  3. あれば player_hp += 30、items.remove("ポーション")。
  4. なければ「持ってない!」と表示。

🐍 きょうのコード

Python main.py
player_hp = 50
player_max_hp = 100
items = ["ポーション", "ポーション"]

print("1: 攻撃 / 2: ポーション")
action = input("> ")

if action == "2":
    if "ポーション" in items:
        old_hp = player_hp
        player_hp = min(player_hp + 30, player_max_hp)
        items.remove("ポーション")
        print(f"💚 ポーションを使った!HP +{player_hp - old_hp}")
        print(f"あなたのHP: {old_hp} → {player_hp}")
        print(f"持ち物:{items}")
    else:
        print("ポーションを持っていない!")
▶ Trinketを開いて動かす

このページの「▶ このページで実行」でそのまま動きます。Trinketを使うときは、上のコードをコピーして左のエリアに貼り付け、Runボタン(▶)を押します。

💡 きょうのポイント

if アイテム in リスト: で持っているか確認。min(回復後, 最大HP) でMAX値を超えないように。これがRPGのHPシステムの常識。

🎮 チャレンジ

  • 毒消しアイテムも追加
  • ポーションを使うとターン消費するかしないか選ぶ
  • アイテムごとに効果を変える(強ポーション、エリクサーなど)

🔁 ふりかえり

  • min がない世界でMAX値を超えないようにするには?
  • リストの中身チェックは in 演算子
  • 次回はボス戦

👨‍👩‍👧 おうちの人・先生へ

  • 準備:なし。
  • つまずきポイント:in 演算子(リストに含まれるか)。
  • 声かけ例:「自分でアイテム効果を設計できるのがプログラミングの醍醐味」と。