「数字当てゲームを作ろう!~配列で履歴を記録する~」
「なるほどなっとくC#」の配列まで終えた生徒さん向けに、変数・条件分岐・ループ・配列を総復習できる、シンプルで楽しいミニゲームのチュートリアルを作ります。
目次
🎮 チュートリアルのゴール
- プレイヤーが 1~10 の数字を当てるシンプルなゲームを作る
- 入力履歴を配列で保存し、最後に一覧表示する
- if文、while文、配列の基本操作を復習する
🗂️ 使用する知識
✅ 変数
✅ if文(条件分岐)
✅ while文(繰り返し)
✅ 配列
📌 ステップ1:ゲームの流れを理解する
- 正解の数字(1~10)をプログラムがランダムで決める
- プレイヤーが数字を入力する
- 正解ならゲームクリア!不正解なら再入力
- すべての入力履歴を最後に表示する
🖊️ ステップ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回
ディスカッション
コメント一覧
まだ、コメントがありません