ゲームを造る方法とC Count -環-ループとゲームを終えること


つの部分チュートリアルシリーズのこの最終的な部分では、我々は我々が開発してきた我々の「推測する数」ゲームを完了します.
この最後のチュートリアルでは、すべてをもたらし、またループの重要な概念を導入し、あなたの方法を乱数を生成する方法を示します.ネット
我々が完了している時間では、プログラムが密かに1と100の間の番号を選択すると、彼らはそれを推測したまで、番号を選ぶためにプレーヤーを求める作業ゲームを持っているでしょう.
この記事はビデオフォームでも入手できます.
注:このシリーズは緩やかに1月1日からのコンテンツの一部に基づいていますTech Elevator 's 14週C

我々が最後にそれを見た我々のコード


これは、最後のチュートリアルの最後までのコードです.
using System;

namespace GuessTheNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            // The program's secret number that the player has to guess
            int secretNumber = 42; // TODO: This should be random between 1 - 100
            int guess = 0;

            // Let the player enter a number
            Console.WriteLine("What is your guess?");
            string guessText = Console.ReadLine();

            // Evaluate the player's guess and respond
            guess = int.Parse(guessText);
            if (guess == secretNumber)
            {
                Console.WriteLine("You guessed the secret number!");

                Console.WriteLine("The application will now close.");
            }
            else if (guess > secretNumber)
            {
                Console.WriteLine("The number is lower than " + guess);
            } 
            else // If we got here guess must be < secretNumber
            {
                Console.WriteLine("The number is greater than " + guess);
            }

            // TODO: Loop until the player gets the answer right

            // After this line is reached, the program will end
        }
    }
}
現在のところ、アプリケーションは私たちが数を推測することができますし、私たちは、その数が正しいかどうか、あまりにも高いか、あまりにも低い教えてください.あなたは現在、単一の推測を取得し、推測しようとしている番号は常に同じです.
それを修正しましょう、1つの推測を得るだけのプレーヤーの問題から始めましょう.

一方ループ


ユーザーが正しい推測をするまでの数を推測したいなら、ループと呼ばれる何かを必要とするでしょう.
コードを書くとき、しばしば特定の回数を何かするか、特定の条件が満たされるまで連続的に何かをしたい.Cでは、ループを書く方法は驚くべき数ですが、ループの最も簡単なタイプの一つは、ここでのアプリケーションではうまくいきます.
条件がtrueの間、whileループは何かをします.それで、例えば、ユーザーが数を推測していない間、彼らが推測したいどんなナンバーを尋ねてください、そして、彼らの推測が正しかったならば、彼らに話してください.
実際、それはまさに私たちがしたいことです.我々が宣言した場所に行くことによってこれをしましょうguess 変数guessText ) のあとに行を追加します.
while (guess != secretNumber)
{
これが少しのように見えるならばif 最後のチュートリアルからのステートメントは、非常に密接に関連しているためです.if文は以下のようになりますif (guess != secretNumber) 代わりにwhile キーワード.
The while ループの間にコードを実行します{ } 'ループの先頭で括弧の状態が真である限り.
クイックノート!= - これは非常に密接に関連する== 二つのことは意味が等しいが!= が等しくないことを示す.だからここで本質的に“推測は正しい答えに等しくない”と言っている.
あなたはまだ我々のループを閉じていないことに気づいたかもしれない.一致を加える必要があるでしょう} コンパイラが幸せになるためのプログラムにしましょう.
加える} アプリケーションの最終コメントの直前に行します.
あなたMain メソッドは以下のようになります.
        static void Main(string[] args)
        {
            // The program's secret number that the player has to guess
            int secretNumber = 42; // TODO: This should be random between 1 - 100
            int guess = 0;

            while (guess != secretNumber)
            {
                // Let the player enter a number
                Console.WriteLine("What is your guess?");
                string guessText = Console.ReadLine();

                // Evaluate the player's guess and respond
                guess = int.Parse(guessText);
                if (guess == secretNumber)
                {
                    Console.WriteLine("You guessed the secret number!");

                    Console.WriteLine("The application will now close.");
                }
                else if (guess > secretNumber)
                {
                    Console.WriteLine("The number is lower than " + guess);
                }
                else // If we got here guess must be < secretNumber
                {
                    Console.WriteLine("The number is greater than " + guess);
                }
            }

            // After this line is reached, the program will end
        }
そして、我々がそれを走らせるとき、あなたが秘密のナンバー(まだ常に42である)に到着するまで、あなたは数を推測することができなければなりません

ランダム化


我々はすべてのループで正常に動作している今、我々は1つの最終的なステップがあります:私たちのプログラムは、秘密に最初に実行するときに乱数を選択する必要があります.
これを行うには、新しい部分を紹介します.NET開発Random クラス.
レット置換int secretNumber = 42; 行の先頭に次の2行があります.
Random randomizer = new Random();
int secretNumber = randomizer.Next(1, 100);
これらの最終的な2行は我々のプログラムを完了します、しかし、彼らは何をしますか?
最初に新しい変数randomizer それはRandom 次にクラスインスタンスを作成し、randomizer 変数.
この構文とクラスは一般的にこのチュートリアルシリーズの範囲を超えていますTech Elevator ), しかし、今のところ、クラスはある種のプログラミング概念のまわりで関連した機能性とデータのコレクションであると理解します.
我々の場合はRandom クラスは乱数発生のまわりで関連した方法の多くを含みます、そして、それは我々が第2の線のためにそれをまさに使うものです.int secretNumber = randomizer.Next(1, 100); 1から100までの間のランダムな整数を生成し、secretNumber 変数.
これで、我々のプログラムは現在、乱数を生成することができます.

すべてをまとめる


一歩一歩戻り、全体としてのプログラムを見ましょう
using System;

namespace GuessTheNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            // The program's secret number that the player has to guess
            Random randomizer = new Random();
            int secretNumber = randomizer.Next(1, 100);
            int guess = 0;

            while (guess != secretNumber)
            {
                // Let the player enter a number
                Console.WriteLine("What is your guess?");
                string guessText = Console.ReadLine();

                // Evaluate the player's guess and respond
                guess = int.Parse(guessText);
                if (guess == secretNumber)
                {
                    Console.WriteLine("You guessed the secret number!");

                    Console.WriteLine("The application will now close.");
                }
                else if (guess > secretNumber)
                {
                    Console.WriteLine("The number is lower than " + guess);
                }
                else // If we got here guess must be < secretNumber
                {
                    Console.WriteLine("The number is greater than " + guess);
                }
            }

            // After this line is reached, the program will end
        }
    }
}
ここでは、我々のプログラムは、乱数を選びます.その後、ユーザの推測がその数に等しくなるまでループします.ループをするたびに、プレーヤーの数を推測するよう求められます.入力したテキストは、それから秘密番号と比較できる整数に解析されます.その後、プログラムは、暗証番号に推測を比較し、適切な応答が表示されます.

次は何ですか。


おめでとう!あなたが沿って続くならば、あなたはC .
短い間、このアプリはいくつかの重要なプログラミングの概念を示しています.
  • 変数
  • 基本データ型
  • /else文
  • ループ
  • コンソール入出力
  • これはC - CHENが提供しなければならないことではない.実際には、このシリーズは、最初の1週間の小さな部分のオフに基づいてTech Elevator's 14 week curriculum .
    これはほんの少しのCの角の味であった.NET開発、それはあなたのコードと構造プログラムで動作するようにどのような感じを与える必要があります.
    あなたがもっと学びたいならば、たくさんの本、記事とソフトウェア開発に関するコースがあります.もちろん、私はハイテクエレベーターの14週間のC .両方のJavaScriptとVueを使用して完全なスタックの開発を学習中心です.フロントエンドのJS.両方の定期的な個々の演習、ペアの割り当て、および大きなプロジェクトで物事を構築することによって学習を強調する.技術的なエレベーターはまた、この旅を通じて、彼らの成功に大きな投資されているベテラン業界の専門家(自分自身など)への準備ができてアクセスすることによって学生をサポートしています.
    あなたが技術エレベーターについてもっと学びたいならば、私はあなたに無料でmini-aptitude test または他の数のチェックアウトLearn to Code resources .
    もっと個人的なノートでは、しかし、あなたは学習を風、私はあなたに最高の成功を祈ります.プログラミングのない私の人生と何かを想像することができる能力を想像することができないし、コンピュータ上で書くことによって本当のことを作ることは、まだコードを書くの30年後に私を驚かせる何かです.