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

ハイスコアを記録しよう

🎯 きょうのミッション

ゲーム後にスコアを表示。倒した敵の数・経過ターンから点数を算出。max で過去最高と比べてハイスコア更新を表示。

🧠 できるようになること

  • スコアの計算ロジックを設計できる
  • max でハイスコア比較ができる
  • リプレイ性のあるゲームに進化させる

🧰 用意するもの

🖼 できあがり

クリア後に「スコア:N点 / ハイスコア:M点」が表示されます。新記録なら「🏆 ハイスコア更新!」

📺 実行結果
🏆 全ステージクリア!
倒した敵の数:3
経過ターン:15
スコア:85点
ハイスコア:100点

🚀 やりかた

  1. 戦闘でターン数 total_turns を数える。
  2. 倒した敵の数 enemies_defeated を数える。
  3. スコア計算 score = enemies_defeated * 50 - total_turns * 2
  4. ハイスコアと比較して新記録判定。

🐍 きょうのコード

Python main.py
high_score = 100  # 過去のハイスコア(仮)

# 仮のゲーム結果
enemies_defeated = 3
total_turns = 15
remaining_hp = 60

score = enemies_defeated * 50 - total_turns * 2 + remaining_hp // 2

print("🏆 全ステージクリア!")
print(f"倒した敵の数:{enemies_defeated}")
print(f"経過ターン:{total_turns}")
print(f"残りHP:{remaining_hp}")
print(f"スコア:{score}点")
print(f"ハイスコア:{max(score, high_score)}点")

if score > high_score:
    print("🎉 ハイスコア更新!")
▶ Trinketを開いて動かす

上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。

💡 きょうのポイント

スコア計算式を自分で決められるのがプログラミングの面白さ。何を評価するかで「上手い」の基準が変わります。max(a, b) で大きい方を返す。

🎮 チャレンジ

  • クリア時間を time で計測してスコアに反映
  • ターン数が少ないほどボーナス
  • 難易度別ハイスコアを管理(dict使用)

🔁 ふりかえり

  • 「うまく遊んだ」の基準をどう決める?
  • ハイスコアの保存はTrinketだとできない(実行ごとにリセット)
  • 次回はテストプレイ

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

  • 準備:なし。
  • つまずきポイント:なし。
  • 声かけ例:「ゲームバランスを設計する」プロデューサー視点を養う回。