【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は、公式サイトからダウンロードできます。

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は使えます。

コメント

このブログの人気の投稿

1つの商品を紹介する記事の形を作りやすくする無料テンプレ

比較記事テンプレ 見た目編|目的に合わせて見やすく整える考え方

サイトやブログのホーム画面の見せ方テンプレ【無料HTML】