この挑戦は、私の家の法廷での粘着性のあるクリスマスライトに敬意を表します。
課題は、「リアルタイム」で装飾を示すグラフィカルな出力を作成することです。
ビデオ(gifまたはその他の形式)には、n行m列の垂直および水平の「ライト」があります。5 <= m、n <= 40。フレームのサイズと解像度はn とmによって異なる場合がありますが、n、m = 5の場合は少なくとも50x50ピクセルである必要があります(ベクトルグラフィックは問題ありません)。絵とは次のようになります。n=6
m=5
装飾:
色:
すべてのライトは以下の6 RGB-色のいずれかを持っています{255,0,0}
、{0,255,0}
、{0,0,255}
、{255,255,0}
、{0,255,255}
と{255,0,255}
。
アニメーション:
n
そしてm
任意の合理的な形式にし、あなたが好きな順に入力とさせていただきます- 画像は毎回変更され
dt = 25 ms
ます。インタープリターの制限、コンピューターの速度低下などの「外部要因」が原因である場合、偏差は問題ありません。- タイムステップを手動で設定できない場合は、デフォルトのタイムステップが受け入れられます。
- すべてのライトはで赤(
{255,0,0}
)になりt=0
ます。 - 最初のライト(左上)の色が変わる可能性は常に5%です。すべての色(現在持っている色を除く)は同じように見えるはずです。
各ライト(最初のライトを除く)は、その左側のライトの色を取得します。ライトが左端にある場合、上の行の右端にあるライトの色を取得します。ライトには、下図のように番号が付けられています。ライト番号
k
は、ライト番号の色を取得しk-1
ます。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
理論的には、出力は永遠に実行されるはずです(ただし、言語/インタープリターにこれを妨げる制限がある場合を除く)。
- 少なくとも5秒、できればそれ以上の回答のサンプルを提供してください(これは推奨事項であり、要件ではありません)。(TIOまたは同様のものへのリンクももちろんOKです:D)
- フレーム、軸、グリッド線などが受け入れられます。
6行5列
15行30列
r,g,y,b,
などはいくつかの言語で短くなっています。
drawnow
結果が遅すぎるため、MATLABでこれを実装することを避けました。答えは次のとおりだと思います:インタプリタが25 ms以上の固定最小時間分解能を持っているのが設計上の選択であれば、それは問題ありません。貧弱で単純な実装、過負荷/低速なオンラインインタープリターなどが原因である場合は、問題ありません。