【发布时间】:2011-01-04 16:08:50
【问题描述】:
我正在控制台上绘制一个带有星号的三角形,通过从用户那里获取坐标,使用 for 循环。但我无法绘制五边形。五边形包括 3 个三角形,但我编写的程序无法附加这些三角形。它是在控制台的不同位置绘制 3 个不同的三角形。我该如何解决这个问题?你能帮我吗?
【问题讨论】:
-
请向我们展示您到目前为止所做的尝试 - 根据您的描述,我们只是猜测。
我正在控制台上绘制一个带有星号的三角形,通过从用户那里获取坐标,使用 for 循环。但我无法绘制五边形。五边形包括 3 个三角形,但我编写的程序无法附加这些三角形。它是在控制台的不同位置绘制 3 个不同的三角形。我该如何解决这个问题?你能帮我吗?
【问题讨论】:
有两种可能的方法。
您可以创建用于绘制图形的输出的内部表示(如二维字符数组)。
图像完成后,打印整个数组。
您使用转义序列(特定于您的终端)将光标移动到某个位置以绘制字符。
在您的情况下,您应该清除终端一次,然后为每个星号移动光标。
[编辑] 至于#1:
char[][] screen = new char[20][]; // 20 lines
for(int i=0;i<screen.length; i++) screen[i] = new char[80]; // 80 columns
现在你可以用screen[y][x] = '*'画东西了
打印:
for(int i=0;i<screen.length; i++) System.out.print(new String(screen[i]));
System.out.println();
【讨论】: