Мой плохой - не видел, что он с делом пока.

енил идентификаторы на английский, чтобы их можно было легко понять в Code Review. Я использовал рефакторинг, поэтому он мгновенно меняется везде, но тогда все пошло не так. Мой код больше не работает. Код не завершен, хотя. Мне все еще нужно найти способ играть снова. Что я здесь не так делаю?

Цель:

Создайте консольное приложение, в котором вам нужно угадать сгенерированное случайное число от 1 до 100. Когда ваше предположение окажется ниже сгенерированного числа, оно скажет выше. Если оно выше сгенерированного числа, оно скажет ниже. Проверьте комментарии в коде.

 public static void Main(string[] args)
 {
     const int STOPVALUE = 0;
     int inputNumber, count = 0;

     Random generator = new Random();

     int gameNumber = generator.Next(1, 100);

     //I output the game number to see beforehand want the winning number is.
     //The generator is doing it's job right.
     Console.WriteLine(gameNumber);

     //Here is where it goes wrong and i can't seem to understand why.
     //It keeps saying go higher even when the input number is 100.
     do
     {
         Console.Write("(Stop Value: 0) Insert a number: ");
         inputNumber = int.Parse(Console.ReadLine());

         count++;

         if (gameNumber == inputNumber)
         {
             Console.WriteLine("Your guess is correct.");
             Console.WriteLine("Number of turns: " + count);

             count = 0;

             Console.WriteLine("Play again? (Y/N)");
             char startOver = char.Parse(Console.ReadLine());

             if (startOver == 'Y')
             {
                 return;
             }

             if (startOver == 'N')
             {
                 Environment.Exit(0);
             }
         }

         if (inputNumber > gameNumber)
         {
             Console.WriteLine("Higher");
         }

         if (inputNumber < gameNumber)
         {
             Console.WriteLine("Lower");
         }
     } 
     while (inputNumber != STOPVALUE);
 }
 Pikoh10 окт. 2017 г., 13:01
Просто измените условия. Код делает именно то, что вы говорите.if (inputNumber > gameNumber) Итак, когда ввод равен 100 (что, вероятно, больше, чем случайное число), вы выводите «выше»
 BugFinder10 окт. 2017 г., 13:00
Предполагая, что вы понимаете код, который у вас есть - что именно мешает вам работать с разделом «повторить игру»?

Ответы на вопрос(2)

Решение Вопроса

просто поменяйте местами условия. Попробуйте сломать код и убедитесь сами:

Допустим, в игре сгенерировано секретное число 42. Допустим, вы выбрали число 50.

Тогда вы увидите это условие:

if (inputNumber > gameNumber)
{
    Console.WriteLine("Higher");
}

if (inputNumber < gameNumber)
{
    Console.WriteLine("Lower");
}

Так что это будет «интерпретировано» как:

if (50 > 42)
{
    Console.WriteLine("Higher");
}

if (50 < 42)
{
    Console.WriteLine("Lower");
}

Как видите, ваша логика не верна. Когда число низкое, это говорит вам, чтобы идти ниже; и когда число велико, оно говорит вам идти выше.

Вы также можете сослаться на этот ответ:https://stackoverflow.com/a/46665389/4352946

 Ilias10 окт. 2017 г., 13:58
Какая смешная ошибка. Моя логика действительно неверна. Я тренировался много часов без перерыва. Я думаю, мой мозг перестал использовать логику, когда я писал эту программу. Ну, это все объясняет!

return, который выходит из функции. Вы могли бы просто поставить бесконечный цикл (какwhile(true)) упаковка кода изint gameNumber = generator.Next(1, 100); до конца, затем измените этоreturn кbreak, Это выйдет из внутреннего цикла и вернется к новому, генерируя, таким образом, новое число и начиная все сначала.

 Gabriel Rainha10 окт. 2017 г., 13:21
@Droppy Это снова запустит его внутреннюю работу вместо выхода из этого цикла.
 Lucca Ferri10 окт. 2017 г., 13:28
Мой плохой - не видел, что он с делом пока.
 Gabriel Rainha10 окт. 2017 г., 13:19
@ Дроппи Цитирование ОП: Мне все еще нужно найти способ играть снова. С кодом, который он разместил, он, конечно, не может играть снова.
 Lucca Ferri10 окт. 2017 г., 13:20
Тогда должно бытьcontinue;неbreak;
 Lucca Ferri10 окт. 2017 г., 13:17
Это не проблема ОП. «Когда ваше предположение ниже сгенерированного числа, оно скажет выше. Если оно выше сгенерированного числа, оно скажет ниже».

Ваш ответ на вопрос