java - intellij中的多行ascii动画

标签 java intellij-idea printing ascii-art

我正在尝试使用 Intellij 创建多行 ascii 艺术动画,为此我正在创建一个字符串数组,并将该数组的每个元素称为一个框架。
之后,为了使其正常工作,我需要更改每次单位 x 打印到控制台的内容。

我确实知道我可以用“\r”替换打印到控制台的最后一行,如下所示:

for (int i = 0; i <= 100; i++)
    {
        Thread.sleep(200);
        System.out.printf("\r %s  ", i);
    }

但是它不会删除打印的旧行(System.out.printf("\r %s ", "a \n b");只会在每次迭代中替换b)并且因为intellij的控制台不是真正的控制台所以没有从代码中清除控制台的方法

那么对于该问题还有其他适用于 intellij 的解决方案或解决方法吗?

为了让事情变得更简单,我将添加一个示例。假设我想打印这个举重动画(ascii art 取自 - https://ascii.co.uk/art/stickman )

                                                                 O--,---,--O
                                          ._O_.     O--=-O-=--O     \ O /
    _._                      ,_O_,     O--<-+->--O      '-'          - -
   / O \        ,-O-,     O--(---)--O       X            v            -
   \| |/     O--=---=--O      >'>          / \          / )          / \
O--+=-=+--O      2"2          - -         -   -        ~  z         =   =

所以我正在为框架创建一个二维字符串数组
(之后我将使用 String.join("\n", < frame elements >) 创建框架)。

String[][] frames = 
{
  {
     "           ",
     "           ",
     "    _._    ",
     "   / O \\   ",
     "   \\| |/   ",
     "O--+=-=+--O"
 },
 {
     "              ",
     "              ",
     "     ,-O-,    ",
     "  O--=---=--O ",
     "      2"2     "
 },
 {
     "              ",
     "     ,_O_,    ",
     "  O--(---)--O ",
     "      >'>      ",
     "      - -      "
 },
 {
     "     ._O_.    ",
     "  O--<-+->--O ",
     "       X      ",
     "      / \\     ",
     "     -   -    "
 },
 {
     "  O--=-O-=--O ",
     "      '-'     ",
     "       v      ",
     "      / )     ",
     "     ~   Z    "
 },
 {
     "  O--,---,--O ",
     "     \\ O /    ",
     "      - -     ",
     "       -      ",
     "      / \\     ",
     "     =   =    "
 }
}

并且在每个时间单位x+1中,我希望控制台显示帧[x+1]而不是帧[x]。

有什么想法吗?

最佳答案

正如您所建议的,没有办法清除intellij中的控制台,因为Intellij没有真正的控制台。 但是,您可以在每一帧后打印大量空行,以使旧帧不可见。

关于java - intellij中的多行ascii动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70775017/

相关文章:

java - Java中如何根据屏幕大小改变窗口大小?

javascript - 检测打印机是否已成功打印页面

java - SVNKit 使用 auth 文件夹

java - 为什么我的程序中显示空错误;字符串标记器到数组

spring - IntelliJ IDEA 运行选项卡可以有颜色吗?

android-studio - IntelliJ IDEA启动时如何防止打开最后一个项目?

javascript - 如何在将表格发送到@media print CSS 之前缩放表格

html - 打印 CSS 和 HTML 书籍

java - 在不同数据库之间复制数据(都支持jdbc)

java - TomEE启动错误: Cannot create unique file,请将java.io.tmpdir设置为可写文件夹或创建工作文件夹