Положение курсора в c # - PullRequest
       9

Положение курсора в c #

0 голосов
/ 20 февраля 2019

Я только начинающий, так что извините, если мой вопрос глупый.Я делаю программу, которая спросит о размере прямоугольника (AxB) и нарисует его.Но мне нужно также спросить о позиции прямоугольника (X, Y).Есть ли способ установить позицию курсора в консольном приложении c #, который будет работать дольше, чем только для верхней части прямоугольника?Или что-то простое, чтобы это произошло?Вот часть кода:

int a;
int b;
int x;
int y;
Console.WriteLine("A");
a = int.Parse(Console.ReadLine());
Console.WriteLine("B");
b = int.Parse(Console.ReadLine());
Console.WriteLine("X");
x = int.Parse(Console.ReadLine());
Console.WriteLine("Y");
y = int.Parse(Console.ReadLine());
Console.Clear();
Console.SetCursorPosition(x, y);
for (int i = 0; i < a; i++)
    Console.Write("*");
Console.Write("\n");
for (int i = 0; i < b - 2; i++)
{
    Console.Write("*");
    for (int k = 0; k < a - 2; k++)
        Console.Write(" ");
    Console.Write("*");
    Console.Write("\n");
}
for (int i = 0; i < a; i++)
    Console.Write("*");
Console.Write("\n");   

1 Ответ

0 голосов
/ 20 февраля 2019

Это далеко не самое эффективное и элегантное решение, но оно будет работать для того, что вы хотите сделать:

        int a;
        int b;
        int x;
        int y;
        Console.WriteLine("A");
        a = int.Parse(Console.ReadLine());
        Console.WriteLine("B");
        b = int.Parse(Console.ReadLine());
        Console.WriteLine("X");
        x = int.Parse(Console.ReadLine());
        Console.WriteLine("Y");
        y = int.Parse(Console.ReadLine());
        Console.Clear();
        Console.SetCursorPosition(x, y);

        for (int i = 0; i < y; i++) //this for will print all the "y" line breaks before your picture prints
        {
            Console.Write("\n");
        }

        for (int j = 0; j < x; j++)
        {
            Console.Write(" ");
        }

        for (int i = 0; i < a; i++)
            Console.Write("*");
        Console.Write("\n");

        for (int i = 0; i < b - 2; i++)
        {
            for (int j = 0; j < x; j++) //This for will print x spaces before each line
            {
                Console.Write(" ");
            }
            Console.Write("*");
            for (int k = 0; k < a - 2; k++)
                Console.Write(" ");
            Console.Write("*");
            Console.Write("\n");
        }
        for (int j = 0; j < x; j++)
        {
            Console.Write(" ");
        }
        for (int i = 0; i < a; i++)
            Console.Write("*");
        Console.Write("\n");

        Console.ReadLine();

Просто необходимо напечатать несколько дополнительных разрывов строк и пробелов в нужных местах

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