なぜPythonでゲーム?
Pythonは文法が短いので、ゲームのルールを書くコードも短くなります。ブラウザだけで動く「Google Colab」や「Replit」を使えば、インストールせずにすぐ実行可能。3Dゲームのような重いものは難しいですが、文字ベースの小さなゲームなら、Pythonの基礎(input・if・for・乱数)だけで十分作れます。
絵を動かしたいときは「pygame」というライブラリを追加で使えますが、最初の1本は文字だけで十分です。「動いた」体験をまず取りに行きましょう。
ゲームの仕組み:3つの共通パターン
どんなゲームも、突き詰めれば「入力 → 判定 → 結果 → 繰り返し」の組み合わせです。この型を覚えれば、ルールを差し替えるだけで新しいゲームが量産できます。
① 数当てゲーム(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文の練習に最適です。
勝敗は表の通りに if文で書きます。慣れてきたら「3回先取で勝ち」「勝率を表示」「コンピュータの傾向を学習させる」など改造で発展できます。
③ タイピングゲーム(80行)
画面に表示された英単語をユーザーが打ち、何秒かかったかで点数を出すゲームです。time モジュールで時間を測り、リストから単語をランダムに選ぶ仕組み。タイピング練習にも使えるので、家族や友達に「使ってもらえるツール」になります。
最初は文字だけのゲームで十分ですが、完成したら少しずつ改造しましょう。数当てゲームなら挑戦回数を記録する、じゃんけんなら勝率を表示する、タイピングゲームなら問題をCSVから読み込む、というように1機能ずつ足します。小さな改造を重ねると、変数、リスト、関数、ファイル保存の意味が自然に分かります。
ゲーム作りでは、プレイヤーが変な入力をしたときの対応も大事です。数字を入れる場面で文字を入れたらどうするか、空欄のままEnterを押したらどうするか、終了したいときのコマンドは何か。こうした例外処理を考えると、ただ動くコードから「人に使ってもらえるプログラム」に近づきます。
気をつけたい落とし穴
- input()で受け取る値は「文字列」なので、数字として比べるには int() で変換する
- 無限ループ(while True)から抜ける break を入れ忘れて止まらなくなる
- 1回で完璧なコードを書こうとする。動かして→直して、を10回繰り返すのが正しい順序
将来どう役立つ?
ゲームを作る経験は「ユーザーがどう操作するか」を考える練習になります。これはWebアプリ・モバイルアプリ・業務ソフトなど、すべてのソフト開発で必要な感覚です。中高生のうちに「使う人の気持ち」を考えながら作る経験は、後の進路で強みになります。
Pythonゲームは、ポートフォリオの最初の作品にも向いています。READMEに遊び方、使った文法、工夫した点、次に追加したい機能を書けば、単なる練習コードではなく「完成品」として見せられます。短いゲームでも、最後まで作って説明できることが大切です。
今日からできること
- Google ColabかReplitで新しいPythonノートブックを作る
- 上の「数当てゲーム」のコードをコピペして実行する
- 正解の範囲を1〜1000に変える、回数制限をつけるなど、自分なりの改造を1つだけ加える