ステージを進めるしくみ
1つの戦闘で終わらせず、複数のステージを進めるシステム。スライム→ゴブリン→ドラゴンの順に登場し、全部倒すとクリア。
🧠 できるようになること
- ステージ変数で進行を管理できる
- ステージごとに敵を変えられる
- 全クリア判定が書ける
🧰 用意するもの
- パソコン
- ブラウザ(Chrome / Edge / Safari)
- インターネット接続
- Trinket(https://trinket.io/python)
🖼 できあがり
3つのステージを順番にクリアしていきます。最後のドラゴンを倒したら「全クリア」。
📺 実行結果
🌍 ステージ1:森 スライムが現れた! (戦闘) クリア! 🌍 ステージ2:洞窟 ゴブリンが現れた! (戦闘) クリア! 🌍 ステージ3:ボス城 ドラゴンが現れた! (戦闘) 🏆 全ステージクリア!
🚀 やりかた
- 敵リスト
stages = [("スライム", 30, 8), ("ゴブリン", 60, 15), ("ドラゴン", 200, 25)]。 for stage in stages:で順番に挑戦。- 戦闘関数に渡して戦う。
- 全部勝てば「全クリア」。
🐍 きょうのコード
Python
main.py
player_hp = 100
player_atk = 20
stages = [
("森", "スライム", 30, 8),
("洞窟", "ゴブリン", 60, 15),
("ボス城", "ドラゴン", 200, 25),
]
for area, enemy_name, enemy_hp, enemy_atk in stages:
print(f"🌍 ステージ:{area}")
print(f"{enemy_name}が現れた!")
while player_hp > 0 and enemy_hp > 0:
enemy_hp -= player_atk
if enemy_hp <= 0:
break
player_hp -= enemy_atk
if player_hp <= 0:
print("💀 あなたは倒れた…")
break
print(f"🎉 {enemy_name}を倒した!")
print()
if player_hp > 0:
print("🏆 全ステージクリア!")
上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。
💡 きょうのポイント
敵をタプルのリストにまとめると、ステージ進行が for 1つで書けます。for area, name, hp, atk in stages: のように分解代入で受け取れるのがPythonの便利機能。
🎮 チャレンジ
- ステージ間にHP回復イベントを入れよう
- ステージごとにアイテム入手
- クリア後に次のステージへ進むかボイト確認
🔁 ふりかえり
- タプルのリストで管理する便利さは?
- ステージ進行を変数で表現する方法は他にもある?
- 次回はハイスコア
👨👩👧 おうちの人・先生へ
- 準備:なし。
- つまずきポイント:タプルとリストの違い。タプルは
(...)、変えられない。 - 声かけ例:「データ構造でゲームを設計」する楽しさを共有。