Pythonで簡単ゲームを作ろう

プログラミングを始めたばかりの人が「動いた!」と一番手応えを感じやすいのがゲーム作りです。Pythonなら30〜100行のコードで、ちゃんと遊べる小さなゲームが作れます。この記事では、初心者でも今日中に完成できる3本(数当て・じゃんけん・タイピング)の作り方を、図解で解説します。

なぜPythonでゲーム?

Pythonは文法が短いので、ゲームのルールを書くコードも短くなります。ブラウザだけで動く「Google Colab」や「Replit」を使えば、インストールせずにすぐ実行可能。3Dゲームのような重いものは難しいですが、文字ベースの小さなゲームなら、Pythonの基礎(input・if・for・乱数)だけで十分作れます。

絵を動かしたいときは「pygame」というライブラリを追加で使えますが、最初の1本は文字だけで十分です。「動いた」体験をまず取りに行きましょう。

ゲームの仕組み:3つの共通パターン

数当てゲームの実行画面とコードの対応(4ステップを実コードで見る) どんなゲームも「入力 → 判定 → 結果 → 繰り返し」の組み合わせで作れる guess_game.py import random answer = random.randint(1, 100) count = 0 while True: ① 入力を受け取る g = int(input("数字: ")) count += 1 ② 判定する if g < answer: print("もっと大きい") elif g > answer: print("もっと小さい") ③ 結果+ ④ 繰り返し終了 else: print("正解!"); break ▶ 実行画面(ターミナル) $ python guess_game.py 数字: 50 もっと大きい 数字: 75 もっと小さい 数字: 62 もっと大きい 数字: 68 もっと小さい 数字: 65 正解!5回でクリア 理論上7回以内で必ず当たる
図1:数当てゲームのコードと実行画面。左の①〜④が「入力→判定→結果→繰り返し」の4ステップに対応する

どんなゲームも、突き詰めれば「入力 → 判定 → 結果 → 繰り返し」の組み合わせです。この型を覚えれば、ルールを差し替えるだけで新しいゲームが量産できます。

① 数当てゲーム(30行)

1〜100のランダムな数字をPythonが用意して、プレイヤーが数字を入力するたびに「もっと大きい / 小さい」とヒントを返すゲームです。30行で完成します。

import random
answer = random.randint(1, 100)
count = 0
while True:
    guess = int(input("1〜100の数字を入れてね: "))
    count += 1
    if guess < answer:
        print("もっと大きい!")
    elif guess > answer:
        print("もっと小さい!")
    else:
        print(f"正解!{count}回でクリア")
        break

使う知識は input・int・random・while・if の5つだけ。「7回以内にクリアできれば理論上は最強」と数学的に証明できる、面白いゲームでもあります。

② じゃんけんゲーム(40行)

プレイヤーがグー・チョキ・パーを入力し、コンピュータがランダムに手を出して勝敗を決めます。リストとif文の練習に最適です。

じゃんけんの勝敗表(あなた → CPU) CPU:グー CPU:チョキ CPU:パー あなた:グー あいこ 勝ち 負け あなた:チョキ 負け あいこ 勝ち あなた:パー 勝ち 負け あいこ
図2:じゃんけんの勝敗を整理した対戦表

勝敗は表の通りに if文で書きます。慣れてきたら「3回先取で勝ち」「勝率を表示」「コンピュータの傾向を学習させる」など改造で発展できます。

③ タイピングゲーム(80行)

画面に表示された英単語をユーザーが打ち、何秒かかったかで点数を出すゲームです。time モジュールで時間を測り、リストから単語をランダムに選ぶ仕組み。タイピング練習にも使えるので、家族や友達に「使ってもらえるツール」になります。

最初は文字だけのゲームで十分ですが、完成したら少しずつ改造しましょう。数当てゲームなら挑戦回数を記録する、じゃんけんなら勝率を表示する、タイピングゲームなら問題をCSVから読み込む、というように1機能ずつ足します。小さな改造を重ねると、変数、リスト、関数、ファイル保存の意味が自然に分かります。

ゲーム作りでは、プレイヤーが変な入力をしたときの対応も大事です。数字を入れる場面で文字を入れたらどうするか、空欄のままEnterを押したらどうするか、終了したいときのコマンドは何か。こうした例外処理を考えると、ただ動くコードから「人に使ってもらえるプログラム」に近づきます。

気をつけたい落とし穴

初心者がハマる3つ
  • input()で受け取る値は「文字列」なので、数字として比べるには int() で変換する
  • 無限ループ(while True)から抜ける break を入れ忘れて止まらなくなる
  • 1回で完璧なコードを書こうとする。動かして→直して、を10回繰り返すのが正しい順序

将来どう役立つ?

ゲームを作る経験は「ユーザーがどう操作するか」を考える練習になります。これはWebアプリ・モバイルアプリ・業務ソフトなど、すべてのソフト開発で必要な感覚です。中高生のうちに「使う人の気持ち」を考えながら作る経験は、後の進路で強みになります。

Pythonゲームは、ポートフォリオの最初の作品にも向いています。READMEに遊び方、使った文法、工夫した点、次に追加したい機能を書けば、単なる練習コードではなく「完成品」として見せられます。短いゲームでも、最後まで作って説明できることが大切です。

今日からできること

3ステップで始めよう
  1. Google ColabかReplitで新しいPythonノートブックを作る
  2. 上の「数当てゲーム」のコードをコピペして実行する
  3. 正解の範囲を1〜1000に変える、回数制限をつけるなど、自分なりの改造を1つだけ加える

まとめ

Pythonでゲームを作るのは、プログラミング基礎を一気に体に染み込ませる近道です。「入力 → 判定 → 結果 → 繰り返し」の型を覚えれば、ルールを変えるだけで新しいゲームが量産できます。最初は数当てゲーム、慣れたらじゃんけん、タイピングと進んで、自分の作品を友達に遊んでもらいましょう。