芝生は、1つの文字が2層の表示可能な空白で囲まれた長方形のフィールドとして定義されます。これは、上の2行と下の2行、および左側の2つのスペースのパディングを意味します(右側には目に見える空白があるので、含める必要はありません)。
|||||
|||||
|||||
刈られた芝生も同様の構造です。ただし、メインキャラクターは最初のキャラクターの短縮バージョンです。
.....
.....
.....
芝刈り機は、2つの芝生のキャラクターとは異なる2つの異なるキャラクターです。=
芝刈り機の背面およびo
前面としての例を次に示します。
=o
芝刈り機は芝生の周りを垂直に動き、正面で回転することもできます。上記の芝刈り機は、アニメーションのある時点で以下のいずれかになります。
=o
o=
o
=
=
o
芝刈り機は、下の芝生にある下の位置のセットで開始できます。芝刈り機はo
、芝生を時計回りに回ります。芝刈り機0
は芝生を反時計回りに回ります。
= =
0 o
=o|||||0=
|||||
=0|||||o=
o 0
= =
アニメーションは0秒から始まります。毎秒、芝刈り機は1スペース先に進み、その前で草を刈ります。芝刈り機がスポットを空けると、刈り取られたように見えます。芝刈り機の前部がライン上の最後の未切断アイテムに到達すると(そしてまだ刈り取られていない草がある場合)、芝刈り機の後部は1回回転して現在の刈り取りを続けます(元の位置に基づいて時計回り/反時計回りに留まります)芝刈り機が終了すると、芝生から完全に離れるまでまっすぐに(すでに刈った草を刈る)続けます。
左上から芝刈り機を開始すると、これは5x3の芝生の基本的な進行を示します。
Second 0 Second 1 Second 2 Second 3 Second 4 Second 5 Second 6 Second 7 Second 8 Second 9 Second 10 Second 11 Second 12 Second 13 Second 14 Second 15 Second 16 Second 17 Second 18 Second 19 Second 20 Second 21 Second 22
=
=o||||| =o|||| =o||| .=o|| ..=o| ...=o ....o ....= ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... .....
||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||o ||||= ||||. ||||. ||||. ||||. ||||. ||||. o|||. =o|||. =o||. .=o|. ..=o. ...=o ....=o .....=o
||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||o ||||o= |||o= ||o=. |o=.. o=... o.... =.... ..... ..... ..... ..... ..... ..... .....
=
入力
入力は、芝生の寸法(2つの整数)になります。
出力
選択した位置に芝生と芝刈り機を印刷します。草、刈草、芝刈り機の前部、芝刈り機の4つのキャラクターを選択できます。現在の秒のコンテンツを仕様に表示するのに十分な空白だけが必要ですが、同じように見える限り、余分な空白は完全に許可されます。
これはアニメーションであるため、1秒ごとに出力をクリアするか、表示フレームでアニメーションを表示するのに十分な改行を印刷することができます(表示フレームは、アニメーション表示に必要なサイズであると想定できます)。
1秒以外の一定の時間間隔(つまり、1バイトを節約するために999ミリ秒、または何らかの理由で2秒)が許可されますが、芝刈り機が自然に動いているように見えるはずです。
可能であれば、ビジュアル(TIO、スニペット、GIFなど)を提供します
これはcode-golfであるため、バイト単位の最短回答が優先されます。