#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