Pythonを使ってGUI(グラフィカルユーザーインターフェース)版の「数当てゲーム」を作る方法をご紹介します。
これまでのテキストベース(コンソール)とは違い、
ウィンドウ・ボタン・入力欄を使った、
「アプリっぽいゲーム」を体験できます。
「難しそう…」と感じるかもしれませんが、
Python標準ライブラリの Tkinter を使えば、初心者でも簡単に作れます。
ゲームを通して学べること(GUI版)
- モジュールのインポート(random / tkinter)
- 変数の使い方
- 条件分岐(if / elif / else)
- イベント処理(ボタンを押した時の動作)
- GUIプログラミングの基本構造
- ユーザー入力(Entryウィジェット)
- 型変換(文字列 → 数値)
数当てゲーム(GUI)の仕様
- コンピューターが 1〜100の数字をランダムに決定
- プレイヤーは 入力欄に数字を入力
- 「判定する」ボタンを押すと結果表示
- 正解するとメッセージが表示されゲーム終了
数当てゲーム(GUI)のコード全体

megu
まずは全体をコピペして確認しながら遊んでみましょう
完成イメージ

右の▷を押すとウインドウが表示されます。

完成したコード(GUI版)
まずは、完成したコードを見てみましょう。
import tkinter as tk
import random
# 正解の数字を作成
target = random.randint(1, 100)
def check_number():
try:
guess = int(entry.get())
if guess == target:
result_label.config(text="正解です!")
elif guess < target:
result_label.config(text="もっと大きい数です。")
else:
result_label.config(text="もっと小さい数です。")
except ValueError:
result_label.config(text="数字を入力してください。")
# ウィンドウ作成
root = tk.Tk()
root.title("数当てゲーム")
root.geometry("300x200")
# 説明ラベル
label = tk.Label(root, text="1から100までの数を当ててください")
label.pack(pady=10)
# 入力欄
entry = tk.Entry(root)
entry.pack()
# 判定ボタン
button = tk.Button(root, text="判定する", command=check_number)
button.pack(pady=10)
# 結果表示
result_label = tk.Label(root, text="")
result_label.pack()
# メインループ
root.mainloop()
コードの詳細解説(GUI版)
1. ライブラリのインポート
import tkinter as tk
import randomtkinter:Python標準のGUIライブラリrandom:ランダムな数を作るために使用
2. 正解の数字を作
target = random.randint(1, 100)コンピューターが当ててほしい数字をランダムに決めます。
3. 判定処理(ボタンを押した時)
def check_number():この関数は、
「判定する」ボタンが押された時に実行されます。
guess = int(entry.get())- Entry(入力欄)から文字列を取得
int()で数値に変換
4. 正解・不正解の判定
if guess == target:
result_label.config(text="正解です!")
elif guess < target:
result_label.config(text="もっと大きい数です。")
else:
result_label.config(text="もっと小さい数です。")テキストベースと同じロジックですが、
printではなくラベル表示になっています。
5. エラー処理(数字以外の入力)
except ValueError:
result_label.config(text="数字を入力してください。")文字を入力しても、アプリが止まらないようにしています。
6. GUI画面の作成
root = tk.Tk()
root.title("数当てゲーム")
root.geometry("300x200")- ウィンドウ作成
- タイトルとサイズ設定
7. ウィジェット配置
Label:説明文・結果表示Entry:数字入力Button:判定ボタン
label.pack()
entry.pack()
button.pack()
result_label.pack()pack()は簡単に配置できる初心者向けレイアウトです。
プログラムの動作の流れ(GUI版)
STEP1 アプリ起動
STEP2 数字を入力
STEP3 ボタンを押す
STEP4 判定結果を画面に表示
STEP5 正解するまで繰り返し
まとめ
今回は、PythonでGUI版の数当てゲームを作りました。
- コンソール → ウィンドウアプリへ進化
- 初心者でも「アプリを作った!」という達成感
- Python学習のモチベーションUP
小さなゲームでも、
動くのが見えるだけで楽しさは何倍にもなります。

ぜひ、色や文字を変えたり、
自分だけの数当てゲームに育ててみてください 。
