【Python初心者向け】先輩と一緒にゲームを作ろう!【第3回】【ChatGPTさん作成記事】

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回出て、最後にスコアが表示される!」

👨‍💻「こうすれば、どれだけ正解できたか競えるようになるな!」

🐍「友達と勝負したら楽しそう!」

for文は、ちょっと独特の構文かな?
機能的には一緒だから、迷いはしないね。

他言語含めて、プログラミング完全初心者の人は、
ココで少し勉強すると良いかも。


⏳ 制限時間をつけてみよう!

🐍「でも、考える時間が無限にあると、ゆっくり調べられちゃいますね。」

👨‍💻「その通り!そこで、制限時間をつけて、時間内に答えられなかったら不正解にするぞ!」

🐍「どうやるんですか?」

👨‍💻「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を使ってキャラクターを表示してみよう!

タイトルとURLをコピーしました