Как я могу добавить систему подсчета в свою игру, которую я создал

#c# #.net-core #console-application

#c# #.net-core #консольное приложение

Вопрос:

Я новичок и пишу на консоли C #. Я создал эту игру в угадайку, в которой вам нужно угадать случайное число от 1 до 10. Я сделал это, чтобы вы могли играть в нее бесконечное количество раз. Игра работает идеально, как и планировалось, но я хочу чего-то большего в этой игре, которая является системой подсчета. Я хочу, чтобы мой код подсчитывал попытки, которые игрок предпринял, чтобы получить правильное предположение. Я пробовал несколько способов, но это не работает.

 using System;

namespace The_Test_Program
{
    class Program
    {
        static void Main(string[] args)
        {
            // Appearance
            Console.Title = "Test";
    
    // Working Code
    Console.WriteLine("I will generate a random number and you have to guess it.");
        Random random = new Random();
        int randomNum = random.Next(1,11);
        
        Console.WriteLine("I have generated a random number from 1 to 10.");
        Console.Write("What do you think write the answer : ");
        int GenNum = int.Parse(Console.ReadLine());
        Char yN;

        while (GenNum!=randomNum)
        {
            Console.Clear();
            Console.WriteLine("nWrong");  
            Console.Write("Wanna try again [Y/N]: ");  
            yN = Char.Parse(Console.ReadLine());
            if (yN =='Y')
            {                    
                randomNum = random.Next(1,11);
                Console.WriteLine("I have generated a new random number.");
                Console.Write("Try again : ");
                GenNum = int.Parse(Console.ReadLine());
                
            }
            else
            {
                Console.WriteLine("No problem");
                Console.WriteLine("nPress any key to exit .....");
                Console.ReadKey();
                Environment.Exit(0);
            }
        }    
        
        Console.WriteLine("Correct");
    }
}
  

}

Комментарии:

1. Здравствуйте, вам просто нужна одна переменная int в начале кода, затем в операторе while вы должны увеличить, чтобы подсчитать, сколько раз он пытается угадать счетчик чисел .

Ответ №1:

Во-первых, добро пожаловать в stack overflow, я надеюсь, вам понравится в ней ориентироваться 🙂

Я бы предложил несколько изменений, вы можете изменить свою проверку while на это:

 while (GenNum!=randomNum amp;amp; yN != 'N')
  

Это позволит вам извлечь логику if позже и просто выполнять цикл, пока эти два утверждения верны.

Если вы хотите подсчитать, сколько раз он повторяется (подсчитайте, сколько раз игрок сыграл), вы можете добавить int counter в начале, а затем добавить counter в цикле while. такой же, как counter = counter 1 , но более причудливым способом.

В приведенном ниже коде с этими пунктами есть еще несколько вещей, которые вы, возможно, захотите изменить, но это для того, чтобы вы поняли суть!

 using System;

namespace The_Test_Program
{
    class Program
    {
        static void Main()
        {
            // Appearance
            Console.Title = "Test";
    
            // Working Code
            Console.WriteLine("I will generate a random number and you have to guess it.");
            Random random = new Random();
            int randomNum = random.Next(1,11);
            
            Console.WriteLine("I have generated a random number from 1 to 10.");
            Console.Write("What do you think write the answer : ");
            int GenNum = int.Parse(Console.ReadLine());
            Char yN = 'Y';
            int counter = 0;
    
            while (GenNum!=randomNum amp;amp; yN != 'N')
            {
                Console.Clear();
                Console.WriteLine("nWrong");
                Console.Write("Wanna try again [Y/N]: ");  
                yN = Char.Parse(Console.ReadLine());
                counter  ;
                if (GenNum == randomNum)
                {
                    Console.WriteLine($"Correct, you tried {counter} times.");
                }
            }
            Console.WriteLine("No problem");
            Console.WriteLine("nPress any key to exit .....");
            Console.ReadKey();
            Environment.Exit(0);
        }
    }
}
  

Комментарии:

1. Есть некоторые проблемы, которые я обнаружил в вашем коде. Во-первых, подсчет работает правильно, но правильный ответ неправильный, так как у вас есть выходные данные, а только одно место для размещения выходных данных. Последняя консоль. Линия записи не работает, находится вне основного

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

3. Спасибо за ваше участие, я сделал это, используя int count