Member 13971748 Ответов: 2

Как мне ограничить количество догадок до 4 в этом коде игры в угадайку?


Я хочу ограничить количество догадок пользователя до 4.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guessing_Game
{
    class Program
    {
        static void Main(string[] args)
        {
            int SecretNumber, GuessNumber;
            Console.WriteLine("Welcome to the number guessing game. Player 1, input a number between 1-10 and then press ENTER.");
            SecretNumber = int.Parse(Console.ReadLine());


            while (SecretNumber > 10)
            {

            Console.WriteLine("Please enter a number from 1-10");
            SecretNumber = int.Parse(Console.ReadLine());

            }

            while (SecretNumber < 1)
            {

                Console.WriteLine("Please enter a number from 1-10");
                SecretNumber = int.Parse(Console.ReadLine());

            }

            Console.Clear();
            Console.WriteLine("The number you have input is now the 'secret number'. Press ENTER to continue.");
            Console.Clear();
            Console.WriteLine("Player 2, please enter a number to guess and then press ENTER.");
            GuessNumber = int.Parse(Console.ReadLine());
            

            while (GuessNumber > 10)
            {

               Console.WriteLine("Please enter a number from 1-10");
               GuessNumber = int.Parse(Console.ReadLine());
               
            }

            while (GuessNumber != SecretNumber)
            {

              Console.WriteLine("Incorrect, enter another number and press ENTER to guess again.");
              GuessNumber = int.Parse(Console.ReadLine());
              
            }

            if (GuessNumber == SecretNumber)
            {
              
              Console.WriteLine("Congratulations! You guessed the right number! Press ENTER to end the program.");
              Console.ReadLine();

            }

        
             
        }
    }
}


Что я уже пробовал:

До сих пор я ничего не пробовал.

2 Ответов

Рейтинг:
2

Bryian Tan

Кто-то уже задавал такой вопрос раньше, вот ссылка на него. Возможно, это не совсем то, что вы ищете, но это должно дать вам некоторое представление.

cp_number_guessing_console | онлайн-компилятор C# | .NET Fiddle[^]


Рейтинг:
2

Patrice T

У вас есть ошибка логики, условия одновременны, а не непротиворечивы.
Вход 15 0 и 20 победит вашу проверку диапазона.
Настоящий кодекс :

while (SecretNumber > 10)
{
    Console.WriteLine("Please enter a number from 1-10");
    SecretNumber = int.Parse(Console.ReadLine());
}
while (SecretNumber < 1)
{
    Console.WriteLine("Please enter a number from 1-10");
    SecretNumber = int.Parse(Console.ReadLine());
}

должны быть изменены, чтобы :
while (SecretNumber < 1 || SecretNumber > 10)
{
    Console.WriteLine("Please enter a number from 1-10");
    SecretNumber = int.Parse(Console.ReadLine());
}

Цитата:
Я хочу ограничить количество догадок пользователя до 4.

1) Сделайте счетчик догадок, инициализируйте его до нуля.
2) увеличивайте счетчик на каждом предположении
3) проверьте его значение и выходите, когда было сделано 4 неверных предположения.