【问题标题】:multi-line ascii animation in intellijintellij中的多行ascii动画
【发布时间】:2022-06-21 23:31:58
【问题描述】:

我正在尝试使用 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 艺术取自 - 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", &lt; frame elements &gt;) 创建框架)。

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]。

有什么想法吗?

【问题讨论】:

    标签: java intellij-idea printing ascii-art


    【解决方案1】:

    正如您所建议的,由于 Intellij 没有真正的控制台,因此无法清除 intellij 中的控制台。 但是,您可以在每一帧之后打印很多空行,以使旧帧不可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2011-11-19
      • 2017-08-08
      • 2019-05-21
      • 2014-05-27
      相关资源
      最近更新 更多