Pythonで数当てゲームを作ろう:初心者向けプロジェクトで学ぶ基本

プログラミングの学習は、実際に何かを作りながら進めるのが一番効果的です。この記事では、Pythonの基本的な構文(変数、ループ、条件分岐)をすべて使って、シンプルな数当てゲームを作成します。

このプロジェクトを通して、複数の知識を組み合わせ、一つの動くプログラムを完成させる喜びを体験しましょう。


目次

ゲームの概要

ゲームのルールはとてもシンプルです。

  1. コンピュータが1から50までの間でランダムな数字を一つ選びます。
  2. プレイヤーには、その数字を当てるためのチャンスが7回与えられます。
  3. プレイヤーが入力した数字が、正解の数字より大きいか小さいか、ヒントが表示されます。
  4. 7回以内に当てることができれば、ゲームクリアです。

早速、コードを見ていきましょう。


プログラムの構成要素

数当てゲームのコードは、いくつかの基本的なブロックに分けることができます。

1. 準備:モジュールのインポートと数値の設定

まず、プログラムの冒頭で、コンピュータがランダムな数字を選ぶための準備をします。これには、randomモジュールを使います。

# randomモジュールを読み込む
import random

# 1から50までのランダムな整数を生成
target_number = random.randint(1, 50)
print("1から50までの数字を当ててください。チャンスは7回です。")

random.randint(1, 50)は、指定した範囲内のランダムな整数を生成する関数です。この生成された数字をtarget_numberという変数に代入し、ゲームの正解とします。

2. 繰り返し処理(forループ)

次に、プレイヤーに数字を7回入力してもらうためのループを作成します。今回は、繰り返す回数が決まっているので**forループ**が最適です。

# 1から7までの回数を数えるループ
for guess_count in range(1, 8):
    print("数字を入力してください。")
    guess = int(input())

range(1, 8)は、1から始まり7までの整数を生成します。これにより、ループは7回繰り返され、プレイヤーは7回まで数字を入力できます。また、int(input())は、入力された文字列を整数に変換しています。

3. 条件分岐(if/elif/else

プレイヤーが入力した数字が正解か、それとも外れているかを判定するために、if/elif/elseを使います。

    if guess < target_number:
        print("もっと大きいです。")
    elif guess > target_number:
        print("もっと小さいです。")
    else:
        # 正解だった場合は、ループを抜ける
        break
  • もしguesstarget_numberより小さければ、「もっと大きい」とヒントを出します。
  • もしguesstarget_numberより大きければ、「もっと小さい」とヒントを出します。
  • どちらでもなければ、guesstarget_numberと等しいということなので、elseブロックが実行されます。

4. ループの脱出(break文)

正解を当てた時点で、残りのチャンスがあってもループを続けたくありません。そこで**break文**の出番です。

先ほどのelseブロックにあるbreakは、ループを即座に終了させる役割を持っています。これにより、プレイヤーが正解した瞬間にゲームが終了し、次の処理へと進みます。

5. 結果の表示

最後に、ループを抜けた後、プレイヤーがゲームに勝ったのか負けたのかを表示します。

if guess == target_number:
    print(f"あたり!{guess_count}回で当てました。")
else:
    print(f"残念。正解は {target_number} でした。")

if guess == target_number:という条件式で、ループを抜けた理由が「正解したから」なのか、「7回のチャンスを使い切ったから」なのかを判定します。そして、それぞれの結果に応じたメッセージを表示します。


まとめ

今回は、Pythonの基本的な構文を組み合わせて数当てゲームを作成しました。

  • import random:ランダムな数値を生成するためにモジュールを読み込みました。
  • forループ:決まった回数の繰り返し処理に利用しました。
  • if/elif/else:プレイヤーの入力に応じて、異なる処理を実行する条件分岐を作りました。
  • break:正解した場合にループを途中で終了させました。

このゲームのルールやヒントのメッセージ、挑戦回数などを自由に変更して、ぜひ自分だけの数当てゲームを作ってみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次