【问题标题】:Drawing pentagon with asteriks on the console在控制台上用星号绘制五边形
【发布时间】:2011-01-04 16:08:50
【问题描述】:

我正在控制台上绘制一个带有星号的三角形,通过从用户那里获取坐标,使用 for 循环。但我无法绘制五边形。五边形包括 3 个三角形,但我编写的程序无法附加这些三角形。它是在控制台的不同位置绘制 3 个不同的三角形。我该如何解决这个问题?你能帮我吗?

【问题讨论】:

  • 请向我们展示您到目前为止所做的尝试 - 根据您的描述,我们只是猜测。

标签: console ascii-art


【解决方案1】:

有两种可能的方法。

  1. 您可以创建用于绘制图形的输出的内部表示(如二维字符数组)。

    图像完成后,打印整个数组。

  2. 您使用转义序列(特定于您的终端)将光标移动到某个位置以绘制字符。

    在您的情况下,您应该清除终端一次,然后为每个星号移动光标。

[编辑] 至于#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();

【讨论】:

  • 转义序列是终端的一项功能,而不是您用来访问它的语言。 C++ 和 Java 的区别在于,现有的库如 ncurses (en.wikipedia.org/wiki/Ncurses) 可以在终端上绘制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多