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

ガチャプログラムを作ろう

🎯 きょうのミッション

ゲームでおなじみのガチャを作ります。レア・スーパーレア・ノーマルなど、出現確率に偏りをつけるのがポイント。リストに同じ要素を多く入れることで実現します。

🧠 できるようになること

  • リスト+random で確率の偏りを作れる
  • ガチャのしくみを理解する
  • for で何度も引くシミュレーションができる

🧰 用意するもの

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

🖼 できあがり

ガチャを10連で引くと、レアが何回・スーパーレアが何回出るかがわかります。確率の不公平さも体感。

📺 実行結果
🎰 10連ガチャ START
1回目:ノーマル
2回目:ノーマル
3回目:レア
4回目:ノーマル
5回目:ノーマル
6回目:ノーマル
7回目:スーパーレア
8回目:ノーマル
9回目:レア
10回目:ノーマル

🚀 やりかた

  1. gacha = ["ノーマル"] * 7 + ["レア"] * 2 + ["スーパーレア"] で確率付きリスト。
  2. print("🎰 10連ガチャ START")。
  3. for i in range(1, 11): で10連。
  4. result = random.choice(gacha) で1回引く。
  5. print(f"{i}回目:{result}") で結果表示。

🐍 きょうのコード

Python main.py
import random

gacha = ["ノーマル"] * 7 + ["レア"] * 2 + ["スーパーレア"]

print("🎰 10連ガチャ START")
for i in range(1, 11):
    result = random.choice(gacha)
    print(f"{i}回目:{result}")
▶ Trinketを開いて動かす

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

💡 きょうのポイント

["ノーマル"] * 7 は「ノーマル」を7回くりかえしたリストを作ります。これと + でレア・スーパーレアを混ぜれば、出現確率に偏りができます。確率は7:2:1。

🎮 チャレンジ

  • 100連にして、レアとスーパーレアの出現回数を集計しよう
  • ウルトラレア(1/100)も追加しよう
  • 「天井」しくみ(10連でスーパーレア確定)を実装してみよう

🔁 ふりかえり

  • 確率はランダムなので、10連で必ず1回スーパーレアが出るとは限らない。何回引くと安定する?
  • ガチャゲームの確率表示は法律で公開が義務付けられている。なぜ?
  • 確率の偏りを知っていると、お金の使い方も変わるかも?

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

  • 準備:なし。
  • つまずきポイント:リストを * で増やす書き方は新しい。「["X"] * 5 は X が5個並ぶリスト」と説明。
  • 声かけ例:ガチャは社会問題でもある題材。「お金で確率を買うとは?」「期待値の考え方」を年齢に応じて話してみてください。