2011-12-10 67 views
0

我在控制台上画了一个十字。这里是我的代码:控制台写入光标位置

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("┼");行。程序写的是“─”符号。我做错了什么以及如何解决这个问题?

回答

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("┼"); 
+0

的划分是必不可少的我的程序能够显示更大的价值。没有其他方法吗? – Cobold

+0

@Cobold你需要什么比一个简单的数学更多? –

+0

@ L.B我正在绘制图表,所以我需要比(80,25)更大的值。 – Cobold