【Python】初心者が1から作る!ターミナルで遊べる数当てゲーム
こんにちは!Web整備士です!
今回から、初心者向けにゲーム作りをやっていきます。
まず作るのは、Pythonで遊べる「数当てゲーム」です。
パソコンが1〜10の中から数字を1つ決めて、プレイヤーがその数字を当てるシンプルなゲームです。
今回はVS Codeでコードを書き、ターミナルで実行します。
HTMLやCSS、JavaScriptは次回以降で使います。まずはPythonで「ゲームのルールを作る」ことに慣れていきます。
今回作るもの
今回作るのは、ターミナルで遊べる数当てゲームです。
- 1〜10の数字を当てる
- パソコンがランダムに正解を決める
- 入力した数字が小さいと「もっと大きいです」と表示する
- 入力した数字が大きいと「もっと小さいです」と表示する
- 正解すると「正解です!」と表示する
- 何回で当たったか表示する
- q を入力すると途中で終了できる
- 数字以外を入力しても止まらない
かなりシンプルですが、ゲームの基本である「入力」「判定」「結果表示」が入っています。
完成イメージ
ゲームを実行すると、ターミナルにこのような表示が出ます。
数当てゲームを始めます!
1〜10の数字を入力してください。
途中でやめたいときは q を入力してください。
数字を入力してください:
数字を入力すると、パソコンがヒントを出してくれます。
数字を入力してください:5
もっと大きいです。
数字を入力してください:8
もっと小さいです。
数字を入力してください:7
正解です!
3回で当たりました!
こんな感じで、正解の数字を探していきます。
作業環境
今回使ったものはこちらです。
- Mac
- VS Code
- ターミナル
- Python
VS Codeは、コードを書くためのアプリです。
ターミナルは、文字でパソコンに命令を出す場所です。
今回は、VS Codeでコードを書いて、ターミナルでゲームを動かします。
Pythonが入っているか確認する
まず、MacにPythonが入っているか確認しました。
ターミナルで、次のコマンドを入力します。
python3 --version
自分の環境では、次のように表示されました。
Python 3.9.6
このように Python 3.x.x のような表示が出れば、Pythonを使う準備はできています。
今回は個人情報が映りそうだったので、この画面のスクショは撮りませんでした。
Pythonが入っていない場合
もしターミナルでPythonのバージョンが表示されない場合は、Pythonをインストールする必要があります。
Pythonは、公式サイトからダウンロードできます。
Macの場合は、公式サイトからPythonをダウンロードしてインストールします。
ただし、今回の自分の環境では、すでにPythonが入っていました。
Python 3.9.6
そのため、今回はインストール作業はせず、そのままゲーム作りに進みました。
もしPythonが入っていない人は、Pythonをインストールしてから次に進んでください。
Windowsの場合
Windowsの場合も、流れはほとんど同じです。
- Pythonをインストールする
- VS Codeを開く
- 作業用フォルダを作る
- Pythonファイルを作る
- ターミナルで実行する
Macでは「ターミナル」を使いましたが、Windowsでは「PowerShell」や「コマンドプロンプト」を使います。
WindowsでPythonが入っているか確認するときは、次のコマンドを使います。
python --version
もしこれで表示されない場合は、こちらも試してみてください。
py --version
Pythonのバージョンが表示されればOKです。
今回の記事ではMacで進めていますが、コード自体はWindowsでも使えます。
作業用フォルダを作る
次に、デスクトップに作業用フォルダを作りました。
今回のフォルダ名は、こちらです。
python_number_game
ターミナルでは、次のコマンドを使いました。
mkdir -p ~/Desktop/python_number_game
このコマンドで、デスクトップに「python_number_game」というフォルダを作れます。
作業用フォルダを分けておくと、あとからコードや画像を整理しやすくなります。
VS Codeでフォルダを開く
次に、作ったフォルダをVS Codeで開きました。
VS Codeでフォルダを開くと、その中にPythonファイルを作りやすくなります。
今回は、次のファイルを作りました。
guess_number_game.py
.py は、Pythonのファイルにつく名前です。
今回はこのファイルの中に、数当てゲームのコードを書いていきます。
コピペ用コード
こちらが、今回作った数当てゲームのコードです。
import random
answer = random.randint(1, 10)
count = 0
print("数当てゲームを始めます!")
print("1〜10の数字を入力してください。")
print("途中でやめたいときは q を入力してください。")
while True:
user_input = input("数字を入力してください:")
if user_input == "q":
print("ゲームを終了しました。")
break
if not user_input.isdigit():
print("数字を入力してください。")
continue
guess = int(user_input)
count = count + 1
if guess < answer:
print("もっと大きいです。")
elif guess > answer:
print("もっと小さいです。")
else:
print("正解です!")
print(str(count) + "回で当たりました!")
break
このコードを「guess_number_game.py」に貼り付けて保存します。
ターミナルで実行する
コードを書いたら、ターミナルでゲームを実行します。
今回使ったコマンドはこちらです。
python3 ~/Desktop/python_number_game/guess_number_game.py
このコマンドの意味は、簡単に言うとこうです。
- python3:Pythonで動かす
- ~/Desktop:デスクトップの中を見る
- python_number_game:作ったフォルダを見る
- guess_number_game.py:このPythonファイルを実行する
つまり、「デスクトップにある python_number_game フォルダの中の guess_number_game.py をPythonで動かす」という意味です。
ターミナル表示をシンプルにする方法
スクショや短い録画を撮るときは、ターミナルの表示を少しシンプルにしました。
個人情報や余計な名前が映りにくくなるので、記事用の画像を撮るときに便利です。
cd ~/Desktop/python_number_game
export PS1="$ "
clear
python3 guess_number_game.py
これで、ターミナルの表示が少しスッキリします。
本名やニックネームが映りそうな画面は、無理にスクショを撮らない方が安全です。
遊び方
ゲームを実行すると、次のような表示が出ます。
数字を入力してください:
ここに、1〜10の数字を入力します。
たとえば、5と入力してEnterキーを押します。
5
もし正解より小さければ、こう表示されます。
もっと大きいです。
もし正解より大きければ、こう表示されます。
もっと小さいです。
正解すると、こう表示されます。
正解です!
3回で当たりました!
途中でやめたいときは、q を入力します。
q
すると、ゲームを途中で終了できます。
コードの簡単な説明
ここからは、コードの意味を簡単に説明します。
import random
randomは、ランダムな数字を使うための道具です。
今回は、パソコンに1〜10の中から正解の数字を決めてもらうために使っています。
answer = random.randint(1, 10)
ここで、1〜10の中からランダムに正解の数字を決めています。
この answer が、プレイヤーが当てる数字です。
count = 0
countは、何回入力したかを数えるためのものです。
最初はまだ何も入力していないので、0から始めます。
while True:
これは、ゲームをくり返すための書き方です。
正解するか、q を入力するまで、ゲームが続きます。
input
inputは、プレイヤーが入力した文字を受け取るためのものです。
今回は、数字や q を入力するために使っています。
if user_input == "q":
もし q が入力されたら、ゲームを終了します。
途中でやめられるようにしておくと、遊びやすくなります。
isdigit()
isdigitは、入力されたものが数字かどうかを確認するためのものです。
これがあるので、数字以外を入力してもゲームが止まりにくくなります。
int(user_input)
inputで受け取ったものは、最初は文字として扱われます。
数字として比べるために、intで数字に変えています。
if guess < answer:
入力した数字が正解より小さいとき、「もっと大きいです」と表示します。
elif guess > answer:
入力した数字が正解より大きいとき、「もっと小さいです」と表示します。
else:
小さくも大きくもない場合は、正解です。
そのときに「正解です!」と、何回で当たったかを表示します。
どこを変えると改造できるか
このゲームは、少しだけコードを変えると改造できます。
数字の範囲を変える
今は1〜10の数字を当てるゲームです。
answer = random.randint(1, 10)
ここを変えると、数字の範囲を変えられます。
たとえば、1〜100にしたい場合はこうします。
answer = random.randint(1, 100)
表示する文章を変える
ゲーム中に表示される文章も変えられます。
print("もっと大きいです。")
たとえば、少しゲームっぽくしたいなら、こう変えてもOKです。
print("もっと大きい数字を入力してみよう!")
このように、文章を変えるだけでもゲームの雰囲気が変わります。
【広告/PR】
Pythonやプログラミングを基礎から学びたい人向け
数当てゲームを作ってみて、「もっと基礎から学びたい」と感じた人向けの学習サービスです。
今回できたこと
今回は、Pythonでターミナル版の数当てゲームを作りました。
- Pythonが使えるか確認できた
- 作業用フォルダを作れた
- VS CodeでPythonファイルを作れた
- 数当てゲームのコードを書けた
- ターミナルでゲームを実行できた
- 数字を入力して遊べた
- qで途中終了できるようにした
- 数字以外を入力しても止まりにくくした
短いコードですが、ゲームに必要な基本の流れは入っています。
入力する、判定する、結果を表示する。
この3つがあるだけでも、簡単なゲームを作ることができます。
次回予告
次回は、今回作った数当てゲームをHTML・CSS・JavaScriptでブラウザ版にしていきます。
Pythonではターミナルで遊びましたが、次回はブラウザで遊べる見た目つきの数当てゲームにします。
たとえば、画面にタイトルを出したり、数字を入力する場所を作ったり、ボタンを押して答え合わせできるようにします。
さらに、ゲームらしく「最初から始める」ボタンや、「もう一度遊ぶ」ボタンも作る予定です。
HTMLは画面の部品、CSSは見た目、JavaScriptは動きを担当します。
ブログやサイトだけではなく、こういう簡単なゲーム作りにもHTML・CSS・JavaScriptは使えます。
コメント
コメントを投稿