ポーションで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
持ち物:['ポーション']
🚀 やりかた
- 戦闘メニューに「2: ポーション」を追加。
- 選んだら
if "ポーション" in items:でチェック。 - あれば
player_hp += 30、items.remove("ポーション")。 - なければ「持ってない!」と表示。
🐍 きょうのコード
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を使うときは、上のコードをコピーして左のエリアに貼り付け、Runボタン(▶)を押します。
💡 きょうのポイント
if アイテム in リスト: で持っているか確認。min(回復後, 最大HP) でMAX値を超えないように。これがRPGのHPシステムの常識。
🎮 チャレンジ
- 毒消しアイテムも追加
- ポーションを使うとターン消費するかしないか選ぶ
- アイテムごとに効果を変える(強ポーション、エリクサーなど)
🔁 ふりかえり
minがない世界でMAX値を超えないようにするには?- リストの中身チェックは
in演算子 - 次回はボス戦
👨👩👧 おうちの人・先生へ
- 準備:なし。
- つまずきポイント:
in演算子(リストに含まれるか)。 - 声かけ例:「自分でアイテム効果を設計できるのがプログラミングの醍醐味」と。