title: 数字当てゲーム description: コンピュータが選んだ乱数を当てるスクリプトを作成し、プレイヤーが正解するまで推測を続けます。
数字当てゲーム
Pip やあ!来週、外側の帯域への14時間のカーゴ運びがあるんだけど、それを乗り切るのに何か必要なんだ。数字当てゲームを作ってくれない?コンピュータが乱数を選んで、僕が推測して、高すぎるか低すぎるか教えてくれて、正解するまで続ける。派手なことは不要。脳が溶けるのを防ぐだけで十分だ 🙏
何を作るのか
Guess a number between 1 and 100: 50
Too high. Try again.
Guess a number between 1 and 100: 25
Too low. Try again.
Guess a number between 1 and 100: 37
Too low. Try again.
Guess a number between 1 and 100: 43
You got it in 4 guesses!必要な知識
- Output and input - 各ラウンドでプレイヤーに推測を求める
- Numbers and arithmetic - 推測を目標と比較する
- Control flow - 繰り返し実行されるループと、各結果に分岐する条件
- Modules and the standard library -
randomモジュールで秘密の数を選ぶ
ヒント
乱数。 random モジュールには、指定した範囲内のランダムな整数を返す関数があります。modules の章を確認してください。1行で済みます。
ループ。 プレイヤーが正解するまで推測を求め続けるものが必要です。何が続くかではなく、何で止まるかという条件について考えてください。
型。 input() は常に文字列を返します。これを数字と比較しようとしています。この比較は期待した通りには機能しません。比較する前に変換してください。
さらに進める
コアスクリプトが動作したら、以下の方法で発展させてみてください。
- 推測の回数をカウント。 プレイヤーが試みた回数を追跡し、終了時に表示する。
- 難易度モード。 ゲーム開始時にプレイヤーに範囲を選ばせる:1~20、1~100、または1~500。
- 試行回数制限。 プレイヤーに固定数の推測機会を与える。各ラウンドで残り回数を教える。回数がなくなったら答えを明かす。
- もう一度プレイ。 ゲームが終了したら、もう一ラウンドしたいか尋ねる。勝敗の累計を記録する。

