2026年5月2日
「Pythonでゲームを作ってみたい!」と思ったことはありませんか?
夏休みの自由研究にプログラミングを選ぶ人が増えています。中でもPython(パイソン)は文法がシンプルで、中学生でもゲームを作れます。
この記事では、コピペで動く3つのゲームを紹介します。数当てゲーム・じゃんけんゲーム・クイズゲームです。どれも20行以内で作れるので、初めてでも大丈夫です。
Pythonの基本をまだ学んでいない人は、先に「夏休みにPythonを始めよう」を読んでおくとスムーズです。
この記事で作るゲーム
この記事では3つのゲームを作ります。
ゲーム1: 数当てゲーム
コンピュータが選んだ秘密の数を当てるゲームです。「もっと大きい」「もっと小さい」のヒントを頼りに正解を目指します。
ゲーム2: じゃんけんゲーム
コンピュータとじゃんけんで対戦するゲームです。勝ち・負け・あいこを判定します。
ゲーム3: クイズゲーム
3択クイズを出題して、正解数をカウントするゲームです。問題を自分で追加できます。
どのゲームも、Google Colabやパソコンのターミナルで動かせます。必要なのはPythonだけです。特別なソフトのインストールは不要です。
ゲーム1: 数当てゲーム
コンピュータが1から100の中からランダムに数を選びます。プレイヤーはヒントを頼りに正解を当てます。
コード全文
import random
answer = random.randint(1, 100)
count = 0
print("1から100の数を当ててください!")
while True:
guess = int(input("予想を入力: "))
count = count + 1
if guess == answer:
print("正解!" + str(count) + "回で当たりました!")
break
elif guess < answer:
print("もっと大きい数です")
else:
print("もっと小さい数です") コードの解説
- import random: ランダム(乱数)を使うための準備です
- random.randint(1, 100): 1から100の間でランダムな整数を1つ選びます
- while True: 正解するまで永遠にくり返します
- int(input(...)): キーボードから入力された文字を数値に変換します
- break: ループを抜けて終了します
ゲームの流れ:
- コンピュータが秘密の数を決める
- プレイヤーが数を入力する
- 大きいか小さいかヒントを出す
- 正解したら回数を表示して終了
改造アイデア
- 範囲を1〜1000に広げて難易度を上げる
- 「10回以内に当てられたらクリア」のように制限をつける
- 最後に「あなたのスコアは○点です」と評価を表示する
- 2人対戦モードを作る(交互に入力して少ない回数で当てた方が勝ち)
ゲーム2: じゃんけんゲーム
コンピュータとじゃんけんで対戦します。グー・チョキ・パーを入力して勝敗を判定します。
コード全文
import random
hands = ["グー", "チョキ", "パー"]
print("じゃんけんゲーム!")
player = input("グー・チョキ・パーを入力: ")
computer = random.choice(hands)
print("あなた: " + player)
print("コンピュータ: " + computer)
if player == computer:
print("あいこ!")
elif (player == "グー" and computer == "チョキ") or \
(player == "チョキ" and computer == "パー") or \
(player == "パー" and computer == "グー"):
print("あなたの勝ち!")
else:
print("あなたの負け...") コードの解説
- hands = ["グー", "チョキ", "パー"]: リスト(配列)に3つの手を入れています
- random.choice(hands): リストの中からランダムに1つ選びます
- if player == computer: 同じ手ならあいこです
- elif (...): プレイヤーが勝つ3パターンを「or」でつなげています
- else: 上のどちらでもなければ負けです
ポイント: 「\」は行が長いときに次の行に続けるための記号です。
改造アイデア
- 3回勝負にして勝ち数をカウントする
- 勝率を計算して表示する
- 「グー」「チョキ」「パー」を数字(1, 2, 3)で入力できるようにする
- コンピュータの手の傾向を分析する機能をつける
プログラミング言語の選び方について詳しくは「プログラミング言語の選び方」を参考にしてください。
ゲーム3: クイズゲーム
3択クイズを出題して、正解数をカウントするゲームです。問題を自由に追加できます。
コード全文
score = 0
# 問題データ: [問題文, 選択肢1, 選択肢2, 選択肢3, 正解番号]
quizzes = [
["日本で一番高い山は?", "富士山", "北岳", "槍ヶ岳", "1"],
["太陽系で一番大きい惑星は?", "土星", "木星", "海王星", "2"],
["水の化学式は?", "CO2", "H2O", "NaCl", "2"],
]
for quiz in quizzes:
print("\n" + quiz[0])
print("1: " + quiz[1])
print("2: " + quiz[2])
print("3: " + quiz[3])
answer = input("答えの番号を入力: ")
if answer == quiz[4]:
print("正解!")
score = score + 1
else:
print("不正解... 答えは" + quiz[int(quiz[4])] + "です")
print("\n結果: " + str(len(quizzes)) + "問中" + str(score) + "問正解!") コードの解説
- quizzes: 問題データをリストのリストで管理しています
- quiz[0]: 問題文、quiz[1]〜quiz[3]: 選択肢、quiz[4]: 正解番号
- for quiz in quizzes: 問題を1つずつ取り出してくり返します
- "\n": 改行を入れて見やすくしています
- len(quizzes): 問題の総数を取得します
ポイント: 問題を追加したいときは、quizzesリストに新しい行を追加するだけです。
改造アイデア
- 問題を10問以上に増やす
- ランダムな順番で出題する(random.shuffle(quizzes)を使う)
- 正解率に応じてランク(S, A, B, C)を表示する
- 好きな教科の問題集を作って友達に遊んでもらう
- 制限時間をつける
もっとたくさんのプログラミングアイデアを知りたい人は「夏休みプログラミングアイデア集」もチェックしてみてください。
自由研究としてまとめるコツ
ゲームを作ったら、自由研究のレポートにまとめましょう。
レポートの構成
- テーマと動機: なぜこのゲームを作ろうと思ったか
- 使った道具: Python、Google Colab(またはVS Code)
- 作り方の手順: どんな順番でプログラムを書いたか
- プログラムの説明: コードの重要な部分を図や表で解説
- 工夫した点: 自分なりに改造した部分
- 感想と学んだこと: 難しかったこと、できるようになったこと
工夫した点の伝え方
先生に評価されるポイントは「自分で考えて工夫した部分」です。
良い例:
- 「最初は3回勝負だったが、5回勝負に変えて勝率も表示するようにした」
- 「エラーが出たとき、数字以外を入力してもプログラムが止まらないように修正した」
- 「問題数を増やして、ランダムに出題されるようにした」
発表のポイント
- 実際にゲームを動かして見せると伝わりやすい
- 「最初のバージョン」と「改良後のバージョン」を比較して見せる
- 失敗したことも正直に書く(試行錯誤の過程が評価される)
自由研究のテーマ選びや進め方は「夏休みの自由研究アイデア」で詳しく解説しています。
もっとレベルアップするには
3つのゲームが作れたら、次のステップに挑戦してみましょう。
ステップ1: テキストゲームを発展させる
今回作ったゲームに機能を追加しましょう。たとえば数当てゲームに「ランキング機能」をつけたり、クイズゲームに「カテゴリ選択」をつけたりできます。
ステップ2: GUIゲームに挑戦する
GUI(ジーユーアイ)とは、ボタンや画像を使った画面のことです。今回のゲームはすべてテキスト(文字だけ)で動きますが、Pythonの「tkinter」というライブラリを使うと、ウィンドウやボタンがあるゲームが作れます。見た目がぐっと本格的になります。
ステップ3: Webアプリにする
Pythonの「Flask」というフレームワークを使うと、ブラウザで遊べるゲームが作れます。友達にURLを共有して遊んでもらうこともできます。
ステップ4: 本格的なゲームを作る
「Pygame」というライブラリを使うと、画像やアニメーション、効果音を使った本格的なゲームが作れます。シューティングゲームやアクションゲーム、パズルゲームなども作れるようになります。ここまでできれば、プログラミングの実力は相当なものです。
夏休みのプログラミング学習の計画は「夏休みプログラミング学習ガイド」を参考にしてください。
まとめ
- ✅ Pythonなら20行以内でゲームが作れる
- ✅ 数当てゲーム: randomとwhileループで作る
- ✅ じゃんけんゲーム: random.choiceとif文で作る
- ✅ クイズゲーム: リストとforループで作る
- ✅ 改造して自分だけのオリジナルゲームにしよう
- ✅ 自由研究では「工夫した点」をしっかり書く
- ✅ 次のステップはGUIやWebアプリに挑戦
まずは1つゲームを動かしてみてください。動いた瞬間の感動が、プログラミング学習の原動力になります。
🚀 プログラミング学習をもっと進めよう!
ゲームが作れたら、次はWebサイト作りにも挑戦してみませんか?このサイトでは、HTML・CSS・JavaScriptを無料で学べるコースを用意しています。
夏休みプログラミング学習ガイドを見る →