0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:Python の random 関数を使ってシンプルな数当てゲームを作り、アウトプットしてみた

Last updated at Posted at 2025-02-04

はじめに

このドキュメントでは、Python を使ったシンプルな数当てゲームのコードを紹介します。

このゲームでは、1 から 100 の間でランダムに選ばれた数字を、プレイヤーが試行錯誤しながら当てます。

コードの実装だけでなく、実際の動作例や解説も含めて、Python の基本的な構造を理解しやすくしています。

書こうと思ったきっかけ

Python の基礎を学ぶためには、実際にコードを書いて試すことが大切 だと感じました。

特に「ループ」「条件分岐」「ユーザー入力」などの要素が組み合わさったシンプルなプログラムは、初学者にとって実践的な練習になります。

そこで、手軽に試せる 数当てゲーム を題材にし、コードの流れと解説をまとめました。

完成したコード

test.py
import random

def number_guessing_game():
    target = random.randint(1, 100)
    attempts = 0

    print("1 から 100 までの数字を当ててください!")

    while True:
        guess = int(input("予想した数字を入力してください: "))
        attempts += 1

        if guess < target:
            print("もっと大きい数字です!")
        elif guess > target:
            print("もっと小さい数字です!")
        else:
            print(f"正解です!{attempts} 回で当たりました 🎉")
            break

number_guessing_game()

コードの流れ

  • ランダムな数を生成
    random.randint(1, 100) を使って、1 から 100 の範囲でランダムな数字 (target) を決定。
    ユーザーがこの target の数字を当てるのが目的。

  • ゲーム開始のメッセージを表示
    print("1 から 100 までの数字を当ててください!") でゲーム開始を案内。

  • 無限ループでユーザーの入力を受け取る
    while True: で無限ループを開始し、ユーザーの予想 (guess) を入力させる。
    attempts をカウントして、何回目の試行か記録。

  • 入力した数字を target と比較

    • guess < target の場合、「もっと大きい数字です!」とヒントを表示。
    • guess > target の場合、「もっと小さい数字です!」とヒントを表示。
    • guess == target の場合、正解メッセージを表示してループを抜ける (break)。
  • ゲーム終了
    正解したら、何回目で当たったか (attempts) を表示して終了。

実際に実行してみる

まず、以下のコマンドを実行して作成したコードの動作を確認します。

python test.py

実行結果

 ~/Desktop ((git)-[main])  python test.py
1 から 100 までの数字を当ててください!
予想した数字を入力してください: 2
もっと大きい数字です!
予想した数字を入力してください: 6
もっと大きい数字です!
予想した数字を入力してください: 50
もっと大きい数字です!
予想した数字を入力してください: 80
もっと大きい数字です!
予想した数字を入力してください: 90
もっと小さい数字です!
予想した数字を入力してください: 87
正解です!6 回で当たりました 🎉

実際の画面

Screenshot 2025-02-05 at 5.44.29.png

コードの解説

乱数を生成し、ゲームの準備をする

import random

def number_guessing_game():
    target = random.randint(1, 100)
    attempts = 0

    print("1 から 100 までの数字を当ててください!")

解説

random.randint(1, 100) で 1 から 100 の間のランダムな整数 を target に設定。
→ これがプレイヤーの当てるべき数 になる。

試行回数 (attempts) を 0 にリセット。
→ プレイヤーが何回試行したかをカウント するための変数。

ゲームの開始メッセージを表示。

ユーザーの入力を受け取り、比較する

    while True:
        guess = int(input("予想した数字を入力してください: "))
        attempts += 1

        if guess < target:
            print("もっと大きい数字です!")
        elif guess > target:
            print("もっと小さい数字です!")
        else:
            print(f"正解です!{attempts} 回で当たりました 🎉")
            break

解説

無限ループ (while True) を使い、ユーザーが正解するまで繰り返す。

ユーザーに数値を入力させる (input())。
→ 整数 (int()) に変換 し、変数 guess に格納。

試行回数 (attempts) を 1 ずつ増やす。

入力値と正解を比較

  • guess < target の場合、「もっと大きい数字です!」 とヒントを出す。
  • guess > target の場合、「もっと小さい数字です!」 とヒントを出す。
  • guess == target の場合、「正解!」 のメッセージを表示し、break でループを終了。

ゲームを開始する

number_guessing_game()

解説

number_guessing_game() を呼び出し、ゲームをスタート する。

まとめ

最後までお読みいただき、ありがとうございました。Python を使ってランダムな数を当てるシンプルなゲームを作ることで、関数の仕組みや活用方法への理解が深まりました。

今後も、このような基礎的な内容を分かりやすく整理し、丁寧にまとめていこうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?