Я новичок в 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 шанса его угадать. Однако я хочу, чтобы консоль печатала оставшееся количество попыток и выводила другое сообщение, когда пользователь делает последнюю попытку.
for (var i = 4; i <= 4; i++) будет выполняться только один раз.
Вот полнофункциональная игра по угадыванию случайных чисел (мой ответ). Вы можете почерпнуть из него несколько идей: stackoverflow.com/questions/70993564/…





Давайте реализуем с нуля шаг за шагом:
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.");
Подумайте о том, как использовать отладчик — вы можете очень легко обнаружить ошибку.