【发布时间】: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", < 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]。
有什么想法吗?
【问题讨论】:
标签: java intellij-idea printing ascii-art