アニメ化しよう!
チャレンジ GIFはアニメーションの最も一般的な画像形式であり、今日のソーシャルメディアでかなり頻繁に使用されています。この課題のために、GIFが何であるかを再定義します。この課題では、2Dの「画像」のある種の表現を含む3D配列を取り込み、それらを反復してアニメーションを表示する必要があります。このアニメーションは、GIF、コンソール、GUIなどのどこでも実行できます。アニメーション化されている限り、配信は問題ではありません。 入力 内部のデータが何らかの形で2D画像を表す3D配列。 配列には、RGBデータ、true / falseデータ、またはその他の適切なデータを含めることができます。 また、文字列の2D配列または同様のものにそれを調整することもできますが、アニメーションは2Dアニメーションである必要があります。 選択した形式(秒、ミリ秒など)の各フレーム間の時間。 期間の長さを含める必要があるかどうか、人々は私に尋ねてきました。あなたがアニメーションを表示できる限り、私の答えは「まあ」です。私はあなたがこれよりも「配列」パラメータを順守することをより心配しています。つまり、ランダムなアニメーションはありません。 出力 値の入力に基づいて、各遷移で適切な遅延を持つ2Dアニメーションのように見えるシームレスに反復された出力シーケンス。 ルール 出力は次のいずれかですが、これらに限定されません。 GIF画像。 GUIアニメーション(私の例)。 コンソール内アニメーション。 正直なところ、以下のルールに従う限り、あなたが合うと思う「アニメーション」。 画像を出力するときは、次のフレームを表示する前にコンソールをクリアする必要があります。それらを順番に印刷することはできません。 シームレスなアニメーションのように見える限り、コンソールを「クリア」にエミュレートすることも可能です(私の意味の詳細については、私の例の下のヒントを参照してください)。 実装に関係なく、アニメーションは永久に、または停止するまでループする必要があります。 「ループ」は単純なwhile(true){}場合も無限再帰の場合もあり、ユーザーが「ctrl + c」を押すまでこの傑作を表示したいと思うかもしれません。 任意のサイズの2D「画像」を処理できる必要があります。言語がバッファサイズによって制限されている場合、これは許容範囲であり、説明でこれを述べることができます。 標準の抜け穴は許可されていません。 I / Oの例 入力(3D配列、遅延) f([ [[1,0,0], [0,0,0], [0,0,0]], [[0,0,0], [0,1,0], [0,0,0]], [[0,0,0], [0,0,0], [0,0,1]], ], 1) 出力(例、2020バイト-Java) import javax.swing.JFrame; import javax.swing.JTextArea; /** * Simple …