数あてゲーム(数当てゲーム、数猜測遊戲)は、プレイヤーがある範囲内の数を推測し、正解を当てるゲームです。典型的な数あてゲームのルールと仕組みは次のようなものです:
基本ルール
- 範囲の設定: ゲームの開始時に、当てる数の範囲が設定されます。例えば、1から100までの数など。
- 数の選択: ゲームの管理者(コンピューターまたは他のプレイヤー)がその範囲内のある数をランダムに選びます。この数はプレイヤーには見えません。
- 推測の開始: プレイヤーはその範囲内の数を推測して入力します。
- ヒントの提供: 各推測の後、管理者は推測が正解の数より「大きい」か「小さい」かをプレイヤーに伝えます。
- 繰り返し: プレイヤーは正解を当てるまで推測を繰り返します。
- 正解: プレイヤーが正解の数を当てたらゲーム終了です。
例
- コンピューターが1から100までの数から50を選んだとします。
- プレイヤーが30を推測します。
- コンピューターは「正解の数はそれより大きい」と伝えます。
- 次にプレイヤーが70を推測します。
- コンピューターは「正解の数はそれより小さい」と伝えます。
- プレイヤーが50を推測します。
- コンピューターは「正解です」と伝え、ゲーム終了です。
変種
- 制限回数モード: プレイヤーが推測できる回数に制限があり、限られた回数内で正解を当てる必要があります。
- マルチプレイヤーモード: 複数のプレイヤーが交互に推測を行い、誰が先に正解を当てるかを競います。
- 範囲の動的変更: 正解に近づくにつれ、範囲が狭まっていくルールもあります。
このように、数あてゲームはシンプルながらも楽しさと緊張感を提供するゲームであり、プログラミングの入門教材としてもよく用いられます。
import random
def guess_number_game():
print("=== 数当てゲーム ===")
print("1から100の間の数を当ててください。")
secret_number = random.randint(1, 100)
attempts = 0
max_attempts = 10
while attempts < max_attempts:
guess = int(input("あなたの予想する数を入力してください: "))
attempts += 1
if guess < secret_number:
print("もっと大きな数です。")
elif guess > secret_number:
print("もっと小さな数です。")
else:
print(f"おめでとうございます! {secret_number} は正解です。")
print(f"あなたは {attempts} 回目で正解しました。")
break
if attempts == max_attempts:
print("残念!チャンスは使い果たしました。正解は", secret_number)
play_again = input("もう一度プレイしますか? (yes/no): ")
if play_again.lower() == "yes" or play_again.lower() == "y":
guess_number_game()
else:
print("ゲームを終了します。お疲れ様でした。")
#ゲームの開始
guess_number_game()