コンピューターがi3、i5、i7の代わりにx86と呼ばれたときのコンピューターの機能を示す古いデモを見逃しています。386で最初に見たものの1つは、現在25周年を迎えているFuture CrewのUnrealデモでした。午前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 ms待機して(約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を設定できますが、これは要件ではありません)。速度を調整するだけで滑らかになり、待ち時間がまったく同じであるかどうか心配する必要はありません。
- アニメーションは無限にループします。
これはcode-golfなので、テキストをアニメーション化できる最短のプログラムまたは機能が勝つかもしれません!