
Pythonのお勉強第3回目です。
今回もChatGPTさんに教えてもらったよ。
ちょこちょこ補足していくので、よろしくお願いします。
第3回:スコア&タイマー付きの計算ゲームを作ろう!
🐍後輩:「先輩!前回の計算クイズ、めっちゃ面白かったです!」
👨💻先輩:「お、ハマったな? じゃあ、今日はもっとゲームらしくしてみよう!」
🎯 ゲームにスコアをつけよう!
🐍「ゲームらしくするって、どういうことですか?」
👨💻「たとえば、正解するとポイントが増えるようにしたら、スコアを競えるようになるぞ!」
🐍「確かに! じゃあどうやってスコアをつけるんですか?」
👨💻「単純に、正解したらスコアを1点増やしていけばいい。」
🐍「ちょっとやってみます!」
import random
score = 0 # スコアを記録する変数
for _ in range(5): # 5問出題
num1 = random.randint(1, 10)
num2 = random.randint(1, 10)
print(f"{num1} + {num2} はいくつ?")
answer = int(input("答えを入力してください: "))
if answer == num1 + num2:
print("正解!🎉")
score += 1 # スコアを増やす
else:
print(f"残念!正解は {num1 + num2} でした。")
print(f"\nゲーム終了!あなたのスコアは {score} 点です!")
🐍「実行すると…」
7 + 3 はいくつ?
答えを入力してください: 10
正解!🎉
4 + 8 はいくつ?
答えを入力してください: 11
残念!正解は 12 でした。
...
ゲーム終了!あなたのスコアは 3 点です!
🐍「すごい!クイズが5回出て、最後にスコアが表示される!」
👨💻「こうすれば、どれだけ正解できたか競えるようになるな!」
🐍「友達と勝負したら楽しそう!」

機能的には一緒だから、迷いはしないね。

他言語含めて、プログラミング完全初心者の人は、
ココで少し勉強すると良いかも。
⏳ 制限時間をつけてみよう!
🐍「でも、考える時間が無限にあると、ゆっくり調べられちゃいますね。」
👨💻「その通り!そこで、制限時間をつけて、時間内に答えられなかったら不正解にするぞ!」
🐍「どうやるんですか?」
👨💻「Pythonには time
っていうライブラリがあって、時間を測れるんだ。」
import random
import time # 時間を測るためのライブラリ
score = 0
for _ in range(5):
num1 = random.randint(1, 10)
num2 = random.randint(1, 10)
print(f"{num1} + {num2} はいくつ?(制限時間5秒)")
start_time = time.time() # 開始時間を記録
answer = input("答えを入力してください: ")
end_time = time.time() # 終了時間を記録
elapsed_time = end_time - start_time # 経過時間を計算
if elapsed_time > 5:
print("時間切れ!❌")
elif int(answer) == num1 + num2:
print("正解!🎉")
score += 1
else:
print(f"残念!正解は {num1 + num2} でした。")
print(f"\nゲーム終了!あなたのスコアは {score} 点です!")
🐍「おぉ!ちゃんと5秒以内に答えないとアウトですね!」
👨💻「そうだな。これでちょっと緊張感が出るだろ?」
🐍「めちゃくちゃゲームっぽくなってきた!」

ベテランさんには、少し穴が目立つプログラムだけど、ライブラリをimportすることで、
簡単に機能が追加できる事は判る。。。のかな?

このプログラム、未入力で回答すると、
エラーが発生するので、どんな感じになるか試してみると良いかも。
🔁 何回でも遊べるようにしよう!
🐍「でも、ゲームが終わったらすぐに終了しちゃいますね。もう1回遊びたくなったらどうするんですか?」
👨💻「いい質問だ! while
文を使って、プレイヤーが ‘q’ を入力するまで続けるようにしよう。」
🐍「やってみます!」
import random
import time
while True:
score = 0
for _ in range(5):
num1 = random.randint(1, 10)
num2 = random.randint(1, 10)
print(f"{num1} + {num2} はいくつ?(制限時間5秒)")
start_time = time.time()
answer = input("答えを入力してください(終了する場合は 'q' を入力): ")
end_time = time.time()
if answer == 'q':
print("ゲームを終了します!")
exit() # プログラムを終了
elapsed_time = end_time - start_time
if elapsed_time > 5:
print("時間切れ!❌")
elif int(answer) == num1 + num2:
print("正解!🎉")
score += 1
else:
print(f"残念!正解は {num1 + num2} でした。")
print(f"\nゲーム終了!あなたのスコアは {score} 点です!")
retry = input("もう一度プレイしますか?(y/n): ")
if retry.lower() != 'y':
print("ゲームを終了します!")
break
🐍「わぁ、これなら何回でも遊べるし、途中で ‘q’ を押せば終了できますね!」
👨💻「そうそう。これでよりゲームらしくなったな!」
🕹️ 次回予告:画面にキャラクターを表示してみよう!
🐍「Pythonでこんなにゲームっぽいものが作れるなんて思わなかったです!」
👨💻「まだまだこれからだぞ!次回は “Pygame” っていうライブラリを使って、キャラクターを画面に表示する方法を学ぶぞ!」
🐍「えっ、いよいよ本格的なゲーム開発じゃないですか!? めっちゃ楽しみです!」
👨💻「よし、その調子だ!次回もお楽しみに!」
▶ 次回:Pygameを使ってキャラクターを表示してみよう!