我在控制台画一个十字架。这是我的代码:
for (int x = 0; x < 320; x++)
{
for (int y = 0; y < 100; y++)
{
Console.SetCursorPosition(Convert.ToInt32(x / 4),Convert.ToInt32(y / 4));
if (x == 160)
{
if (y == 50)
{
Console.Write("┼");
}
else
{
Console.Write("│");
}
}
else
{
if (y == 50)
{
Console.Write("─");
}
}
}
}
控制台绘制十字形除了中间的“┼”符号。当我调试程序时,它会点击Console.Write("┼");
行。相反,程序写了“─”符号。我做错了什么以及如何解决这个问题?
答案 0 :(得分:4)
问题似乎是您要多次写入每个位置,因为您将除以4的部分。
当(x,y)为(160,50)时,你在(40,12)处写一个十字。然后(x,y)是(160,51),所以你在同一个位置写一个垂直管道,覆盖十字架。然后当(x,y)变为(161,50)时,用破折号覆盖管道。
请改为尝试:
for (int x = 0; x < 80; x++)
{
Console.SetCursorPosition(x, 12);
Console.Write("─");
}
for (int y = 0; y < 25; y++)
{
Console.SetCursorPosition(40, y);
Console.Write("|");
}
Console.SetCursorPosition(40, 12);
Console.Write("┼");