Я пытаюсь написать простую программу, которая выбирает случайное число от 1 до 10 и дает пользователю возможность его угадать

Я новичок в C# и немного борюсь с циклами. Для этого я пытаюсь использовать цикл for. Я пробовал разные варианты - циклы for, while, но мне не удалось достичь желаемого результата.

На этот раз написано, что я проиграл, даже если я «угадал» число.

{
    var random = new Random();
    int random2 = Convert.ToInt32(random.Next(0, 10));

    Console.WriteLine(random2);


    for  (var i = 4; i <= 4; i++)
    {
        Console.WriteLine("Please enter a number from 0 to 10:");
        var input = Convert.ToInt32(Console.ReadLine());

        if (input != random2)
        {
            Console.WriteLine("You have {0} tries left.", i - 1);
            continue;

        }

        if (input != random2)
        {
            Console.WriteLine("You have {0} tries left.", i - 1);
            continue;
        }

        if (input != random2)
        {
            Console.WriteLine("You have only {0} try left!!", i - 1);
            continue;
        }

        if (input == random2)
        {
            Console.WriteLine("You lose!!!");
            break;
        }

        if (input == random2)
        {
            Console.WriteLine("You have won!!!!!");
            break;
        }

    }
}

Что я пытаюсь сделать: написать программу, которая выбирает случайное число от 1 до 10 и дает пользователю 4 шанса его угадать. Однако я хочу, чтобы консоль печатала оставшееся количество попыток и выводила другое сообщение, когда пользователь делает последнюю попытку.

Подумайте о том, как использовать отладчик — вы можете очень легко обнаружить ошибку.

PaulF 21.03.2024 19:20
Meta.stackoverflow.com/questions/284236/…
possum 21.03.2024 19:27
for (var i = 4; i <= 4; i++) будет выполняться только один раз.
Michael Roy 21.03.2024 19:29

Вот полнофункциональная игра по угадыванию случайных чисел (мой ответ). Вы можете почерпнуть из него несколько идей: stackoverflow.com/questions/70993564/…

Flydog57 21.03.2024 22:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
4
113
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Давайте реализуем с нуля шаг за шагом:

  1. Начнем с комментариев (что будем делать)
  2. Давайте использовать имена собственные (attempt вместо i)
// Computer pick the number in 1..9 range
int picked = Random.Shared.Next(1, 10);
// We have 4 attempts
int attempts = 4;

// We haven't found the picked number yet
bool found = false;

// for each attempt
for (int attempt = 1; attempt <= attempts; ++attempt) {
  // We are asked to guess
  Console.WriteLine("Please enter a number in 1 .. 9 range:");

  // We do our guess - note, int.TryParse is a better option
  int guess = int.Parse(Console.ReadLine()); 

  // If we guess right then ...
  if (guess == picked) {
    // ... the picked number is found and  
    found = true;
    // we don't want any attempt more
    break; 
  }

  // if we don't guess right, show number of attempts 
  Console.WriteLine($"You have {attempts - attempt + 1} tries left.");
} 

// after all attempts show outcome
if (found)
  Console.WriteLine("You have won!!!!!");
else
  Console.WriteLine("You have lost.");

Другие вопросы по теме

Похожие вопросы