写入缓冲区的最后一个字符将破坏控制台输出

时间:2016-07-25 18:37:06

标签: c# console

我正在写一个小蛇游戏,我想在控制台窗口周围画一个边框。我目前使用此代码绘制水平边框:

static void DrawBorder()
{
    // Horizontal borders
    for (int i = 0; i < Console.WindowWidth; i++)
    {
        Console.SetCursorPosition(i, 0);
        Console.Write("-"); // Top
        Console.SetCursorPosition(i, Console.WindowHeight - 1);
        Console.Write("-"); // Bottom
        Console.SetCursorPosition(i, Console.WindowHeight - 4);
        Console.Write("-"); // Bottom game border
    }
}

但是,当我使用它时,控制台输出变为bit weird .. 因此,我尝试不使用此代码写入最后一行的最后一个字符并使用worked fine

static void DrawBorder()
{
    // Horizontal borders
    for (int i = 0; i < Console.WindowWidth; i++)
    {
        Console.SetCursorPosition(i, 0);
        Console.Write("-"); // Top
        if (i != Console.WindowWidth - 1)
        {
            Console.SetCursorPosition(i, Console.WindowHeight - 1);
            Console.Write("-"); // Bottom
        }
        Console.SetCursorPosition(i, Console.WindowHeight - 4);
        Console.Write("-"); // Bottom game border
    }
}

..除了它看起来不对称(我是一个真正的对称粉丝,你知道吗?)。我该如何解决这个问题?

0 个答案:

没有答案