【Pythonミニゲーム第5回】割り算クイズゲームを作ってみた!初心者向けに/と%もやさしく整理
【広告/PR】この記事にはアフィリエイトリンクを含みます。
こんにちは!Web整備士です。
今回は、Pythonミニゲーム第5回です。
前回は、足し算・引き算・掛け算がランダムで出るクイズゲームを作りました。
今回はその続きで、割り算クイズゲームを作ってみます。
ただ、割り算は少しだけややこしいです。
Pythonでは、割り算に / を使います。
整数だけ出したいときは // を使います。
あまりだけ出したいときは % を使います。
いきなり全部を完璧に覚えなくてOKです。
まずは、コピペして割り切れる割り算ゲームを動かしてみます。
今回作るもの
今回作るのは、こんなゲームです。
- Pythonだけで動く
- VS Codeとターミナルで遊べる
- 割り算の問題が5問出る
- 答えを入力すると、正解・不正解が出る
- 答えが小数にならないように作る
今回は、初心者向けに割り切れる問題だけにします。
まず知っておくこと:/・//・% の違い
Pythonの割り算では、似たような記号が出てきます。
| 記号 | 意味 | 例 |
|---|---|---|
/ |
普通の割り算 | 7 / 2 は 3.5 |
// |
整数の答えだけ | 7 // 2 は 3 |
% |
あまりだけ | 7 % 2 は 1 |
まずはこれだけ
/ は普通の割り算です。
// は整数の答えだけを出します。
% は「あまりだけ」を出します。
今回のゲームでは、小数にならないように工夫します。
完成コード:割り切れる割り算クイズゲーム
こちらが完成版です。
コピーして、そのまま使ってOKです。
import random
print("割り算クイズゲーム!")
print("割り切れる割り算の問題が5問出ます。")
# 正解した数を数える
score = 0
# 5回くり返す
for i in range(5):
# 割る数を作る
num2 = random.randint(1, 10)
# 先に答えを作る
answer = random.randint(1, 10)
# 割られる数を作る
num1 = num2 * answer
# 問題を出す
print()
print(f"第{i + 1}問:{num1} / {num2} はいくつ?")
# プレイヤーに答えを入力してもらう
user_answer = int(input("答えを入力してね:"))
# 正解かどうかを判定する
if user_answer == answer:
print("正解!")
score = score + 1
else:
print("残念!正解は", answer, "でした。")
# 最後に結果を表示する
print()
print("ゲーム終了!")
print("あなたの正解数は", score, "問です。")
遊び方
VS Codeで、次の名前のファイルを作ります。
division_quiz.py
その中に、完成コードを貼り付けて保存します。
Windowsの場合
VS Codeのターミナルで、次のどちらかを入力します。
python division_quiz.py
もし動かない場合は、こちらも試してみてください。
py division_quiz.py
Macの場合
Macの場合は、次のコマンドで動かします。
python3 division_quiz.py
問題が出たら、答えの数字を入力してEnterを押します。
ポイント
このゲームは、ブログの記事の中で動かすものではありません。
VS Codeとターミナルで動かして遊ぶPythonゲームです。
なぜ先に答えを作るの?
今回のコードは、少し変わった作り方をしています。
num2 = random.randint(1, 10)
answer = random.randint(1, 10)
num1 = num2 * answer
普通は、先に問題を作ってから答えを出しそうですよね。
でも割り算は、適当に数字を作ると小数になることがあります。
たとえば、こんな感じです。
7 / 2
これは 3.5 になります。
初心者向けだと少しややこしいので、今回は先に答えを作っています。
イメージ
答えを先に決める。
割る数を決める。
最後に、割られる数を作る。
こうすると、割り切れる問題が作れます。
コードの説明は3つだけ
1. num2 は割る数
num2 = random.randint(1, 10)
num2 は、割る数です。
たとえば、12 / 3 の 3 の部分です。
2. answer は正解
answer = random.randint(1, 10)
先に、答えを作っています。
これで、小数にならない問題を作りやすくしています。
3. num1 は割られる数
num1 = num2 * answer
num1 は、問題の最初に出る数字です。
たとえば、12 / 3 の 12 の部分です。
num2 と answer を掛け算して、割り切れる数字を作っています。
% は「あまりだけ」を出す記号
ここは少し大事です。
% は、割り算の答えを全部出す記号ではありません。
あまりだけを出す記号です。
print(7 % 2)
これは、7 ÷ 2 = 3 あまり 1 の「あまり 1」だけを出します。
なので、結果はこうなります。
1
ざっくり言うと
/ は普通の割り算。
// は整数の答えだけ。
% はあまりだけ。
まずはこれだけでOKです。
整数とあまりを両方出したい場合
割り算では、整数の答えと「あまり」を出したいときもあります。
たとえば、7 ÷ 2 は 3 あまり 1 です。
Pythonでは、整数の答えには // を使います。
あまりには % を使います。
num1 = 7
num2 = 2
print(num1, "÷", num2, "=", num1 // num2, "あまり", num1 % num2)
実行すると、こう出ます。
7 ÷ 2 = 3 あまり 1
ここだけ覚えればOK
// は整数の答え。
% はあまり。
この2つを一緒に使うと、「3 あまり 1」のように表示できます。
ちょっとだけカスタマイズして遊ぶ
このゲームは、少し数字を変えるだけで遊び方を変えられます。
| やりたいこと | 変える場所 | 例 |
|---|---|---|
| 問題数を増やす | range(5) |
range(10) |
| 割る数を大きくする | num2 = random.randint(1, 10) |
num2 = random.randint(1, 20) |
| 答えを大きくする | answer = random.randint(1, 10) |
answer = random.randint(1, 20) |
| もっと簡単にする | random.randint(1, 10) |
random.randint(1, 5) |
まずは、そのまま動けばOKです。
プログラミングを基礎から学びたい人へ
今回みたいに、短いコードを少しずつ変えていくと、Pythonの勉強はかなりやりやすくなります。
ただ、独学だと「エラーが出たときに止まる」「何から勉強すればいいかわからない」こともあります。
基礎から教えてもらいたい人は、プログラミングスクールを調べてみるのも一つの方法です。
まとめ
今回は、Pythonで割り算クイズゲームを作りました。
/は普通の割り算//は整数の答えだけ%はあまりだけ- 割り切れる問題にするために、先に答えを作る
forで5問くり返すifで正解かどうかを判定する
割り算は、足し算や掛け算より少しクセがあります。
でも、今回みたいに「割り切れる問題」にすると、初心者でも遊びやすくなります。
まずはそのまま動かしてみてください。
動いたら成功です。
コメント
コメントを投稿