例題とサンプルコード: 数当てゲーム
1-100までの数字を当てるゲームです。
import random
def number_guessing_game():
number_to_guess = random.randint(1, 100)
attempts = 0
print("1から100までの数字を当ててください!")
while True:
try:
guess = int(input("あなたの予想: "))
attempts += 1
if guess < number_to_guess: print("もっと大きい数字です。") elif guess > number_to_guess:
print("もっと小さい数字です。")
else:
print(f"正解です!{attempts}回目の予想で当たりました。")
break
except ValueError:
print("無効な入力です。1から100までの数字を入力してください。")
if __name__ == "__main__":
number_guessing_game()
問題
次のコードでは、ユーザーが入力できる数字の範囲を1から1000に変更し、プレイヤーに残りの試行回数を表示するようにしてください。プレイヤーには最初に10回の試行が与えられ、それを超えるとゲームオーバーと表示されるようにします。
答え
import random
def number_guessing_game():
number_to_guess = random.randint(1, 1000)
attempts = 0
max_attempts = 10
print("1から1000までの数字を当ててください!")
while attempts < max_attempts:
try:
guess = int(input(f"あなたの予想 (残り{max_attempts - attempts}回): "))
attempts += 1
if guess < number_to_guess: print("もっと大きい数字です。") elif guess > number_to_guess:
print("もっと小さい数字です。")
else:
print(f"正解です!{attempts}回目の予想で当たりました。")
break
except ValueError:
print("無効な入力です。1から1000までの数字を入力してください。")
if attempts == max_attempts and guess != number_to_guess:
print(f"ゲームオーバー!正解は {number_to_guess} でした。")
if __name__ == "__main__":
number_guessing_game()
解説
このコードでは、ユーザーが予想する数字の範囲を1から1000に拡大し、プレイヤーに与えられる試行回数を10回に制限しました。各試行ごとに、残りの試行回数が表示され、10回目の試行でも正解が出なければ「ゲームオーバー」として正解の数字が表示されます。これにより、ゲームの難易度が上がり、より緊張感のあるプレイが楽しめるようになります。
コメント