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

ジャンケン:コンピュータの手を乱数に

🎯 きょうのミッション

第34回までのジャンケンは、コンピュータの手が固定でした。今回は random.choice で毎回ランダムに出すように改造。これで本物のジャンケンと戦えます。

🧠 できるようになること

  • Lv1のジャンケンに乱数を組み込める
  • リスト+random.choice の応用ができる
  • ちゃんとしたゲームを完成させる

🧰 用意するもの

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

🖼 できあがり

プレイヤーが手を入力すると、コンピュータも毎回ランダムに手を出して勝敗判定。本物のジャンケンと同じ。

📺 実行結果
手を選んで(グー・チョキ・パー): グー
あなた:✊  コンピュータ:✌
結果:勝ち!

🚀 やりかた

  1. import random。
  2. hands = ["グー", "チョキ", "パー"]。
  3. computer = random.choice(hands) で乱数選択。
  4. あとは第34回と同じ判定ロジック。
  5. Run を何度もして、結果が変わることを確認。

🐍 きょうのコード

Python main.py
import random

hands = ["グー", "チョキ", "パー"]
emoji = {"グー": "✊", "チョキ": "✌", "パー": "🖐"}

player = input("手を選んで(グー・チョキ・パー): ")
computer = random.choice(hands)

print(f"あなた:{emoji.get(player, '?')}  コンピュータ:{emoji[computer]}")

if player == computer:
    print("結果:あいこ")
elif (player == "グー" and computer == "チョキ") \
  or (player == "チョキ" and computer == "パー") \
  or (player == "パー" and computer == "グー"):
    print("結果:勝ち!")
else:
    print("結果:負け")
▶ Trinketを開いて動かす

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

💡 きょうのポイント

辞書(dict) {"グー": "✊", ...} も少しだけ登場。これはキーから値を引き出すデータ構造で、リストの仲間。本格的には中級で扱いますが、ジャンケンの絵文字対応で便利。

🎮 チャレンジ

  • プレイヤーが「やめる」と打つまでくりかえすジャンケンに改造しよう
  • 勝った数・負けた数を数えてスコア表示しよう
  • コンピュータが「グー」を出しやすいように偏らせよう

🔁 ふりかえり

  • コンピュータがランダムに手を出すと、プレイヤーは勝てる?
  • 辞書(dict)はリストとどう違う?
  • 次回は3回戦勝負にします。何が変わる?

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

  • 準備:なし。
  • つまずきポイント:\(バックスラッシュ)での行継続は中級向け。慣れない子は条件を1行にまとめてもOK。
  • 声かけ例:「毎回手が変わると、ジャンケンらしくなるね」と伝えます。家族と一緒に試すと結果の違いを楽しめます。