我有点想念那些展示计算机功能的旧演示,它们被称为x86而不是i3,i5和i7。我第一次在386上观看的电影之一是Future Crew的Unreal演示,它正在庆祝其25周年。在0:43分钟,演示的第一部分开始,我们看到正弦曲线路径下的滚动文本。让我们尝试模仿ASCII艺术中的效果!
挑战
给出以下路径:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
和输入文本,沿着该路径绘制文本,如下所示:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
请注意,空格在路径中算作字符,并且如果文本长于示例,则路径会自行重复。
动画部分
绘制文本后,请等待100毫秒(以创建约10 fps的动画)并从路径的下一个位置开始再次绘制文本。因此,对于frame #n
,n modulo 40
在路径的以下位置计算并开始绘制,并且文本始终与画布的左侧对齐:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
因此,对于第10帧,我们将有:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
笔记
- 输入将是单个
string
(或char
数组,无论是什么),带有要设置动画的文本,并且将始终至少包含1个字符。 - 要设置动画的有效字符是可打印ASCII集中的字符。
- 遵循的路径将完全相同。
- 文本将始终与画布的左侧对齐,因此效果将是文本像旗帜一样挥舞,而不会移位。画布是指屏幕或用来显示文字的任何东西。;-)
- 帧中必须没有前一帧中的任何字符/像素,除非两个帧中的字符/像素相同。
- 动画的速度并不影响动画的速度,只要它可以平稳运行或尽可能快地运行即可(我们可以设置最低5 fps,但这不是必须的)。只需调整速度使其流畅即可,不必担心等待时间不完全相同。
- 动画将无限循环。
这是代码高尔夫球,所以最能使文本动画的程序或功能可能会赢!
相关的。沙盒。
—
查理
我可以指望38列,而不是40
—
阿尔诺
@Arnauld那是因为重要的是路径中的位置,而不是列中的位置。
—
查理
原来如此。说得通。
—
Arnauld