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

食べ物ルーレットを作ろう

🎯 きょうのミッション

食べ物リストをぐるぐる回しているように見せて、最後にピタッと止まるルーレットを作ります。time.sleep で速度をだんだん遅くするのがコツ。

🧠 できるようになること

  • time.sleep でアニメっぽい演出ができる
  • for ループで段々と変えられる
  • ユーザーを楽しませる工夫を学ぶ

🧰 用意するもの

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

🖼 できあがり

「ルーレット START!」のあと、食べ物が次々表示され、だんだん遅くなり、最後に「決定!カレー」のように止まります。

📺 実行結果
🎰 食べ物ルーレット
→ ラーメン
→ すし
→ カレー
→ ピザ
…(だんだんゆっくり)…
🎉 決定!ハンバーグ

🚀 やりかた

  1. menu リストを用意。
  2. for i in range(15): で15回回します。
  3. random.choice(menu) で1つずつ表示。
  4. time.sleep(0.1 + i * 0.05) で段々遅くする。
  5. ループのあとに最終結果を強調表示。

🐍 きょうのコード

Python main.py
import random
import time

menu = ["カレー", "ラーメン", "すし", "オムライス", "ハンバーグ",
        "カツ丼", "ピザ", "うどん"]

print("🎰 食べ物ルーレット")

for i in range(15):
    choice = random.choice(menu)
    print(f"→ {choice}")
    time.sleep(0.1 + i * 0.05)

final = random.choice(menu)
print(f"🎉 決定!{final}")
▶ Trinketを開いて動かす

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

💡 きょうのポイント

time.sleep(0.1 + i * 0.05) でループが進むほど待ち時間が長くなる。これで「だんだん遅くなる」演出ができます。プログラムに動きを与える小さな工夫。

🎮 チャレンジ

  • 回す回数を20回に増やしてもっと長いルーレットにしよう
  • 最後に print("---" * 10) で派手に区切ろう
  • ルーレットの効果音を絵文字で表現しよう(🎵 🥁)

🔁 ふりかえり

  • time.sleep の引数を変えるとどう変わる?
  • 本物のルーレットも段々遅くなる。なぜ?
  • プログラムで「演出」をどう作る?

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

  • 準備:なし。
  • つまずきポイント:time.sleep 中はTrinketが「動いてない」ように見えるが、実際は待っている状態。
  • 声かけ例:「動きを作るとプログラムが楽しくなる」と感じさせる回。盛り上げて。