「数字当てゲームを作ろう!~配列で履歴を記録する~」

「なるほどなっとくC#」の配列まで終えた生徒さん向けに、変数・条件分岐・ループ・配列を総復習できる、シンプルで楽しいミニゲームのチュートリアルを作ります。


🎮 チュートリアルのゴール

  • プレイヤーが 1~10 の数字を当てるシンプルなゲームを作る
  • 入力履歴を配列で保存し、最後に一覧表示する
  • if文、while文、配列の基本操作を復習する

🗂️ 使用する知識

✅ 変数

✅ if文(条件分岐)

✅ while文(繰り返し)

✅ 配列


📌 ステップ1:ゲームの流れを理解する

  1. 正解の数字(1~10)をプログラムがランダムで決める
  2. プレイヤーが数字を入力する
  3. 正解ならゲームクリア!不正解なら再入力
  4. すべての入力履歴を最後に表示する

🖊️ ステップ2:サンプルコード

以下を参考に、まずは動かしてみてください。

using System;

class Program
{
    static void Main(string[] args)
    {
        // 正解の数字を作る (1~10)
        Random rand = new Random();
        int answer = rand.Next(1, 11);

        // 履歴保存用の配列(最大10回分)
        int[] history = new int[10];
        int count = 0;

        Console.WriteLine("=== 数字当てゲーム ===");
        Console.WriteLine("1~10の数字を当ててください!");

        bool isCorrect = false;

        while (!isCorrect && count < history.Length)
        {
            Console.Write("数字を入力してください: ");
            int guess = int.Parse(Console.ReadLine());

            // 履歴を保存
            history[count] = guess;
            count++;

            if (guess == answer)
            {
                Console.WriteLine("正解です!おめでとう!");
                isCorrect = true;
            }
            else if (guess < answer)
            {
                Console.WriteLine("もっと大きい数字です!");
            }
            else
            {
                Console.WriteLine("もっと小さい数字です!");
            }
        }

        // 履歴を表示
        Console.WriteLine("\n=== 入力履歴 ===");
        for (int i = 0; i < count; i++)
        {
            Console.WriteLine($"{i + 1}回目: {history[i]}");
        }

        Console.WriteLine("\nゲーム終了!");
    }
}

✅ ポイント解説

  • Random クラス正解の数字をランダムに作るときに使います。rand.Next(1, 11) は 1 以上 11 未満、つまり 1~10 を作れます。
  • 配列の使い方int[] history = new int[10]; で、履歴用の配列を10個分作ります。
  • ループと条件分岐while文で何回も挑戦でき、if文で当たり外れを判定します。
  • 履歴の表示最後に for 文で配列を一つずつ表示します。

✨ アレンジ例

  • 最大回数を変えてみる(例:5回まで)
  • 正解の範囲を 1~100 に広げてみる
  • 入力した履歴を逆順に表示してみる

💡 こんな力がつきます!

  • 実際のプログラムで配列を使う感覚
  • 条件分岐とループの組み合わせ
  • シンプルなゲーム作りの楽しさ

訪問数 3 回, 今日の訪問数 3回