1日目のゴールと今日やること
1日目のテーマは
「数当てゲームの“いちばん小さい芯”を作る」 ことです。
いきなり完成版は作りません。
今日はまず、
- プレイヤーから数字を入力してもらう
- その数字を「大きい」「小さい」「正解」で判定する
- 1回ぶんの勝負を成立させる
ここまでを目指します。
「ゲーム」と聞くと難しそうに感じるかもしれませんが、
中身はただの「数字の比較」です。
それを、少しずつ“ゲームっぽく”していきます。
数当てゲームって、どんな流れ?
日本語でゲームの流れを書き出してみる
まずはコードではなく、日本語で考えます。
コンピュータが「正解の数字」を1つ持っている
プレイヤーが数字を入力する
コンピュータが「大きいです」「小さいです」「正解です!」と答える
今日は、この「1回ぶんのやりとり」を作ります。
まだ「何回も挑戦できる」「回数制限がある」などは考えません。
“1回の勝負”をきれいに作ること に集中します。
input で数字を「聞いてみる」
プレイヤーから文字を受け取る
Python でキーボードから入力を受け取るには、input を使います。
guess = input("数字を入力してください: ")
print("あなたが入力したのは:", guess)
Pythonこのコードを実行すると、
数字を入力してください:
と表示され、
数字(や文字)を打って Enter を押すと、
その内容が guess に入ります。
ここで重要なのは、
input で受け取ったものは「文字列(str)」だということ です。
たとえ「10」と入力しても、
中身は「10という文字」であって、「10という数」ではありません。
int で「文字」から「数」に変える
なぜ変換が必要なのか?
数当てゲームでは、
「正解の数字」と「入力された数字」を比較します。
比較には「数」として扱う必要があります。
そこで int を使います。
guess_text = input("数字を入力してください: ")
guess = int(guess_text)
print("文字列としての入力:", guess_text)
print("数としての入力:", guess)
Pythonint(guess_text) とすることで、
“10” → 10 のように、
文字列から整数に変換できます。
ここが、今日の超重要ポイントのひとつです。
「正解の数字」をプログラムの中に用意する
まずは固定の数字でいい
本当はランダムにしたいところですが、
1日目はあえて「固定の正解」にします。
answer = 7
Pythonこれで、「正解は 7」というゲームになります。
今日は、
- 正解:7
- プレイヤーの入力:guess
という前提で、
「大きい」「小さい」「正解」を判定していきます。
if 文で「大きい」「小さい」「正解」を判定する
比較の基本形
Python では、if を使って条件分岐ができます。
if 条件:
処理
elif 別の条件:
別の処理
else:
それ以外のときの処理
Python数当てゲームに当てはめると、こうなります。
if guess < answer:
print("もっと大きい数字です。")
elif guess > answer:
print("もっと小さい数字です。")
else:
print("正解です!")
Pythonここでのポイントは、
guess < answer→ 入力が小さすぎるguess > answer→ 入力が大きすぎる- どちらでもない → つまり
guess == answer→ 正解
という流れになっていることです。
1日目の「最小の数当てゲーム」を完成させる
すべてをつなげたコード
ここまでの要素をつなげると、
1回ぶんの数当てゲームができます。
answer = 7 # 正解の数字
print("数当てゲームへようこそ!")
print("0〜9 の中から、正解の数字を当ててください。")
guess_text = input("あなたの予想を入力してください: ")
guess = int(guess_text)
print("あなたの答えは:", guess)
if guess < answer:
print("もっと大きい数字です。")
elif guess > answer:
print("もっと小さい数字です。")
else:
print("正解です!おめでとう!")
Pythonこのプログラムは、
- 正解を 7 に固定
- プレイヤーに 1回だけ入力してもらう
- 「大きい」「小さい」「正解」を表示する
という、
「1回勝負の数当てゲーム」 になっています。
実行してみたときの例
例1:小さすぎる場合
正解:7
入力:3
表示される流れはこうです。
数当てゲームへようこそ!
0〜9 の中から、正解の数字を当ててください。
あなたの予想を入力してください: 3
あなたの答えは: 3
もっと大きい数字です。
例2:大きすぎる場合
正解:7
入力:9
あなたの答えは: 9
もっと小さい数字です。
例3:正解の場合
正解:7
入力:7
あなたの答えは: 7
正解です!おめでとう!
この「反応の違い」が、
if 文と比較演算子(<, >)で実現されています。
今日いちばん深く理解してほしいポイント
input → int の流れは「お約束」として体に入れる
数当てゲームに限らず、
ユーザーから数字を入力してもらうときは、必ず
text = input("メッセージ")
number = int(text)
Pythonという流れになります。
「入力は文字列で来る」
「数として使いたいなら int で変換する」
この2ステップを、
“反射で書ける”くらいまで慣れていく と、
今後のプログラムが一気に楽になります。
if / elif / else は「質問の順番」
今回の if 文は、
人間の会話にするとこうです。
「その数字、正解より小さい?」
→ はい → 「もっと大きい数字です」
「じゃあ、正解より大きい?」
→ はい → 「もっと小さい数字です」
「どっちでもないなら、同じだね」
→ 「正解です!」
この「質問の順番」が、
そのまま if / elif / else の順番になっています。
2日目へのつなぎ
1日目は、
- 正解の数字を変数で持つ
- input で予想を受け取る
- int で数に変換する
- if で「大きい」「小さい」「正解」を判定する
ここまでをやりました。
2日目からは、
- 「何回もチャレンジできる」ようにする(繰り返し)
- 「何回目で当てたか」を表示する
- 正解の数字をランダムにする
といった、“ゲームらしさ”を足していきます。
最後にひとつだけ、あなたに聞きたい。
今日作った「1回勝負の数当てゲーム」、
自分で数字を変えたり、メッセージを変えたりしてみたくなりましたか?
その「ちょっといじってみたい」という感覚が、
あなたを“コードを書く人”にしていきます。

