проблема создать шаблон, как тральщик с C # - PullRequest
0 голосов
/ 25 сентября 2018

Во-первых, я новичок в C #, поэтому я прошу прощения, если я спрошу что-то вроде "так новичок"Ну, вот в чем дело:

Я пытаюсь создать шаблон, как в игре: Сапер , потому что я делаю простую игру, игру в шахматы, поэтому мой большойпроблема сейчас в том, что я не могу создавать столбцы эффективно, поэтому вот мой код:

class chessGame
{
    static void Main(string[] args)
    {
        const string EX = "X";
        const string OU = "O";
        const int VALUE_X = 8;

        int numRows = 0;
        int numCol = 0;

        while (numRows < VALUE_X)
        {
            for (numCol = 0; numCol < VALUE_X; numCol++)
            {
                Console.WriteLine(OU);
            }
            for (numRows = 0; numRows < numCol; numRows++)
            {
                Console.WriteLine(EX);
            }
            Console.WriteLine();
        }
        Console.ReadLine();
    }
}

также, я вообще не знаю, так ли это способ создать столбцы и строки с этим вложенный цикл , так что, если кто-то может помочь мне с этим, или просто кто-то может помочь мне сделать это правильно с моим настоящим кодом, большое спасибо!

и за запись, вотто, что я сейчас вижу в консоли:

enter image description here

заранее, спасибо за советы всем вам, ребята!

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

WriteLine, как следует из названия, записывает всю строку (и ставит новую строку в конце).Не очень хорошо для создания более одного столбца в вашей настройке!

Типичное решение - просто использовать Console.Write, иногда с Console.SetCursorPosition, чтобы вы могли написать отдельные "ячейки" ввремя.

Другой довольно простой подход состоит в том, чтобы предварительно вычислить каждую строку как одну строку, а затем WriteLine, что.

В любом случае, вам нужно будет значительно переработать ваши циклычтобы получить правильный эффект.

0 голосов
/ 25 сентября 2018
        const string EX = "X";
        const string OU = "O";
        const int VALUE_X = 8;
        bool writeToggle = true;
        int numRows = 0;
        int numCol = 0;

        for (numRows = 0; numRows < VALUE_X; numRows++)
        {
            for (numCol = 0; numCol < VALUE_X; numCol++)
            {
                if (writeToggle)
                {
                    Console.Write(EX);
                }
                else
                {
                    Console.Write(OU);
                }
                writeToggle = !writeToggle;
            }
            Console.WriteLine();
        }
        Console.ReadLine();

Вот код, который должен сгенерировать ваш шаблон.Обратите внимание на использование Console.Write вместо Console.WriteLine, чтобы оно не пропускало строку при каждом выводе символа.Кроме того, bool writeToggle используется для переключения между X и O.

0 голосов
/ 25 сентября 2018

Для начала вам нужно изменить два внутренних WriteLine() вызова на Write().

Но на самом деле вы хотите начать думать с точки зрения всей доски, где у вас есть 2Dмассив для представления статуса платы.Затем напишите функцию для вывода всего массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...