ジャンケン:3回戦で勝ち越し判定
3回戦の勝ち越しを決めるジャンケンプログラム。for で3回くりかえし、勝ち・負け・あいこを数えて、最後にトータルの結果を表示します。
🧠 できるようになること
- for で複数回戦を実装できる
- 勝ち数・負け数をカウントできる
- 完成度の高いゲームプログラムが書ける
🧰 用意するもの
- パソコン
- ブラウザ(Chrome / Edge / Safari)
- インターネット接続
- Trinket(https://trinket.io/python)
🖼 できあがり
3回ジャンケンして、それぞれの結果と最終的な勝ち越し判定が表示されます。
📺 実行結果
== 第1戦 == 手: グー あなた:✊ コンピュータ:✌ → 勝ち == 第2戦 == 手: パー あなた:🖐 コンピュータ:🖐 → あいこ == 第3戦 == 手: チョキ あなた:✌ コンピュータ:✊ → 負け ────────────── 結果:1勝1敗1あいこ → 引き分け!
🚀 やりかた
wins = 0, losses = 0, draws = 0でカウンタ準備。for i in range(1, 4):で3回戦。- ループの中でジャンケン処理+勝敗カウント。
- ループのあと、合計結果を判定して表示。
🐍 きょうのコード
Python
main.py
import random
hands = ["グー", "チョキ", "パー"]
emoji = {"グー": "✊", "チョキ": "✌", "パー": "🖐"}
wins = 0
losses = 0
draws = 0
for i in range(1, 4):
print(f"== 第{i}戦 ==")
player = input("手: ")
computer = random.choice(hands)
print(f"あなた:{emoji.get(player, '?')} コンピュータ:{emoji[computer]}", end="")
if player == computer:
print(" → あいこ")
draws += 1
elif (player == "グー" and computer == "チョキ") \
or (player == "チョキ" and computer == "パー") \
or (player == "パー" and computer == "グー"):
print(" → 勝ち")
wins += 1
else:
print(" → 負け")
losses += 1
print("──────────────")
print(f"結果:{wins}勝{losses}敗{draws}あいこ", end=" ")
if wins > losses:
print("→ 勝ち越し!🎉")
elif wins < losses:
print("→ 負け越し…")
else:
print("→ 引き分け!")
上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。
💡 きょうのポイント
ループの中でカウンターを増やす+ループの後に結果を判定するパターン。これがゲームのスコア管理の基本です。
🎮 チャレンジ
- 5回戦に変えて先に3勝した方が勝ちにしよう
- ジャンケンで勝つたびに「ストリーク(連勝)」を表示しよう
- コンピュータが負けたら次にチョキを出しにくくする「学習」を入れてみよう
🔁 ふりかえり
- 3回戦と1回戦、ゲーム性はどう違う?
- カウンタ変数の値がどうループで変わったか追えた?
- 次回からは関数を学びます。複雑なプログラムを整理する道具。
👨👩👧 おうちの人・先生へ
- 準備:なし。
- つまずきポイント:
end=" "やprint()の組み合わせで改行を制御。混乱したら一旦シンプルに。 - 声かけ例:「これでもう市販のゲームの一部分は書けるレベル」と励まして。次の関数学習でさらに整理されます。