C#

C#で数当てゲームを作成してみた

C#では、JavaやPython等と同様に、if文/for文/while文といった制御構造を利用したり、別メソッドの呼び出しを行ったりできる。

今回は、C#を利用して、簡単な数当てゲームを作成してみたので、そのサンプルプログラムを共有する。

前提条件

下記サイトの手順に従って、Windows端末上でC#の開発環境を作成済であること。

Windows端末上でC#の開発環境を作成してみたWindows端末上でC#の開発環境を作成するには、マイクロソフト社が提供している「Visual Studio」を利用するとよい。 ...

サンプルプログラムの内容

作成したサンプルプログラムの内容は以下の通りで、メインメソッド(Main)内で、正解するまで繰り返し、入力値をチェックし正解と比較している。また、入力値と正解を比較する処理は別メソッド(Judge)にまとめ、メインメソッドから呼び出している。

// See https://aka.ms/new-console-template for more information

namespace Sample
{
    class Program
    {
        static void Judge(int answer, int correct, int count)
        {
            // 入力値(answer)と正解(correct)の比較結果を出力する
            if (answer == correct)
            {
                Console.WriteLine("正解です!");
                Console.WriteLine(count + "回で正解しました!");
            }
            else if(answer < correct)
            {
                Console.WriteLine("もっと大きな数です。");
            }
            else
            {
                Console.WriteLine("もっと小さな数です。");
            }
            Console.WriteLine();
        }

        static void Main(string[] args)
        {
            Console.WriteLine("*** 数当てゲーム START ***");
            Console.WriteLine();

            // 正解の値を0~9の乱数で取得
            int correct = new Random().Next(0, 9);

            // 当てるまでの回数を設定
            int count = 0;

            while (true)
            {
                Console.WriteLine("0~9までの1桁の数字を入力してください");

                // コンソール上で入力された値を取得
                string? input = Console.ReadLine();
                count++;

                // コンソール上で入力された値をチェック
                if (input == null || input.Length != 1
                    || !int.TryParse(input, out int answer))
                {
                    Console.WriteLine("1桁の数字でありません");
                    Console.WriteLine();
                    continue;
                }

                // 結果を判定
                Judge(answer, correct, count);

                // 正解の場合、ループを抜ける
                if(answer == correct)
                {
                    break;
                }
            }

            Console.WriteLine("*** 数当てゲーム END ***");
        }
    }
}



「MiniTool Partition Wizard」はパーティション分割・統合・バックアップ・チェックを直感的に行える便利ツールだったハードディスクの記憶領域を論理的に分割し、分割された個々の領域のことを、パーティションといいます。 例えば、以下の図の場合、C/D...

サンプルプログラムの実行結果

サンプルプログラムの実行結果例は、以下の通り。

1) 初期表示の内容は、以下の通り。
サンプルプログラムの実行結果_1

2) 予測した値を入力し、Enterキーを入力する。
サンプルプログラムの実行結果_2

3) 以下のように、入力値と正解を比較した結果が表示される。
サンプルプログラムの実行結果_3

4) 予測した値を再度入力し、Enterキーを入力する。
サンプルプログラムの実行結果_4

5) 以下のように、入力値と正解を比較した結果が再度表示される。
サンプルプログラムの実行結果_5

6) 予測した値を再度入力し、Enterキーを入力する。
サンプルプログラムの実行結果_6

7) 入力値と正解が一致すると、以下のように表示される。
サンプルプログラムの実行結果_7

8) 入力値と正解が1回で一致した場合の表示例は、以下の通り。
サンプルプログラムの実行結果_8

9) 入力値に数値以外や空白を入力した場合の表示例は、以下の通り。
サンプルプログラムの実行結果_9

要点まとめ

  • C#では、JavaやPython等と同様に、if文/for文/while文といった制御構造を利用したり、別メソッドの呼び出しを行ったりできる。