Вывести массив, а потом очистить консоль и чтобы дальше выполнялся код

Рейтинг: 1Ответов: 1Опубликовано: 03.06.2023

Делаю игру на запоминание. Сначала создаю интовый двумерный массив, заполняю рандомом и вывожу, чтобы пользователь его запомнил. Затем выводится сообщение пользователю, чтобы он запомнил числа. А потом нужно, чтобы массив исчез командой Console.Clear(). Однако так не получается. Также код неверно выводит число запросов построчно(пользователю предлагается вводить массив построчно), в моем случае строчек 5, а он делает запрос лишь 4-х. Количество правильных ответов он тоже считает неверно. Помогите разобраться.

        int[,] numbers = new int[5, 4];
        Random randomiser = new Random();
        int[,] array= new int[5, 4];

        int counter = 0;

        for (int i = 0; i < numbers.GetLength(0); i++)
        {
            for (int j = 0; j < numbers.GetLength(1); j++)
            {
                numbers[i, j] = randomiser.Next(0, 10);
                array[i,j]+= numbers[i, j];
                Console.Write(numbers[i, j] + " ");
            }
            Console.WriteLine();
        }

        while (true)
        {
            Console.WriteLine("Запомните значения в ячейках\n");
           

            for (int n = 0; n < numbers.GetLength(0); n++)
            {

                for (int k = 0; k < numbers.GetLength(1); k++)
                {
                    Console.WriteLine("Введите строчку цифр через запятую\n");
                    string userChoise = Console.ReadLine();
                    string[] array2 = userChoise.Split(',');
                    int number = Convert.ToInt32(array2[n]);

                    if (number == numbers[n, k])
                    {
                        for (int m = 0; m < numbers.GetLength(0); m++)
                        {
                            counter += 1;
                        }
                    }
                    else
                    {
                        continue;
                    }

                }
                break;
            }

            Console.WriteLine($"Вы набрали {counter} очков из 20\n");

            for (int r = 0; r < array.GetLength(0); r++)
            {
                for (int t = 0; t < array.GetLength(1); t++)
                {
                    Console.Write(array[r, t] + " ");
                }

                Console.WriteLine();
            }
            break;        

Ответы

▲ 0Принят

Разобралась.

        int[,] numbers = new int[5, 4];
        Random randomiser = new Random();
        
        int counter = 0;

        for (int i = 0; i < numbers.GetLength(0); i++)
        {
            for (int j = 0; j < numbers.GetLength(1); j++)
            {
                numbers[i, j] = randomiser.Next(0, 10);
                Console.Write(numbers[i, j] + " ");
            }
            Console.WriteLine();
        }
        Console.WriteLine();

        Console.WriteLine("Запомните значения в ячейках\nЕсли запомнили, напишите да\n");
        string command = Console.ReadLine().ToLower();

        Console.Clear();

        for (int n = 0; n < numbers.GetLength(0); n++)
            {
              Console.WriteLine($"Введите строчку из {numbers.GetLength(1)} цифр через запятую\n");
              string userChoise =Console.ReadLine();
              Console.WriteLine();
              string[] array2 = userChoise.Split(',');
              
              for (int k = 0; k < numbers.GetLength(1); k++)
              {
                    int number = Convert.ToInt32(array2[k]);
                    if (number == numbers[n, k])
                    {                        
                       counter += 1;
                    }
              }
                
            }
            
            Console.WriteLine($"Вы набрали {counter} очков из {numbers.Length}\n");

            for (int r = 0; r < numbers.GetLength(0); r++)
            {
                for (int t = 0; t < numbers.GetLength(1); t++)
                {
                    Console.Write(numbers[r, t] + " ");
                }
                Console.WriteLine();
            }