草坪被定义为一个矩形区域,其中一个字符被两层可见空白包围。这意味着上方有两行,下方有两行,并且左侧有两个空格填充(右侧具有可见的空格,因此您无需将其包括在内)。
|||||
|||||
|||||
修剪过的草坪具有类似的结构,除了主要角色是第一个角色的简化版本。
.....
.....
.....
割草机是两个不同的角色,与两个草坪角色不同。这是一个例子,=
作为割草机的后面和o
前面:
=o
割草机将在草坪上垂直移动,也可以在草坪的前面旋转。在动画中的某些时候,上面的割草机可能看起来像下面的任何割草机:
=o
o=
o
=
=
o
割草机可以在下面的草坪上的以下任何位置上启动。割草机o
将顺时针绕草坪行驶。割草机0
将逆时针绕草坪行驶。
= =
0 o
=o|||||0=
|||||
=0|||||o=
o 0
= =
动画从第二个0开始。割草机每秒钟向前移动一个空间,并在其前面割草。当割草机腾出一个点时,它似乎被割断了。当割草机的前部到达生产线上的最后一个未切割的物品时(仍然有未割的草),割草机的后部旋转一次,以继续当前的割草(基于原始位置顺时针/逆时针停留)当割草机完成后,它继续笔直(修剪已经割好的草),直到完全离开草坪。
从左上角开始有割草机,这显示了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.... =.... ..... ..... ..... ..... ..... ..... .....
=
输入项
您的输入将是草坪的尺寸(两个整数)。
输出量
在您选择的位置打印草坪和割草机。您可以为草皮,割草,割草机正面和割草机背面选择四个字符。您只需要足够的空格来显示当前秒的内容到规格,但是完全可以允许额外的空格,只要它看起来相同即可。
由于这是动画,因此您可以每秒清除输出,或者打印足够的换行符以显示在查看框中进行动画处理(您可以假定查看框是显示动画所需的尺寸)。
允许使用除一秒以外的一致时间间隔(例如,出于某种原因,可以节省999毫秒或两秒),但是应该使割草机看起来仍在自然移动。
尽可能提供视觉效果(TIO,代码段,GIF等)
这是代码高尔夫球,因此最短答案以字节为单位。