13
计算一块岩石从山上滚下来
介绍 西西弗斯(Sisyphus)最近在工作中遇到了一些麻烦。看来他只是什么都做不完,他很想找到解决这个问题的办法。 他目前的工作需要在山上滚石。他通常会做好工作,但是每次他靠近山顶时,都会再次滚落。 他的工作真的很沮丧,他想通过计算机模拟岩石滚下山坡来科学地解决问题。 碰巧西西弗斯不是特别擅长编程,所以也许您可以帮助他? 挑战 经过这个愚蠢的介绍之后,我们开始做生意。您的程序将收到一个山丘和岩石的插图,其外观类似于此: #o ## ### ###### ######## 其中#代表山的一部分,o代表岩石。 现在,您必须实现一个程序,将岩石向下移动1层。例如,上面的输出应为: # ##o ### ###### ######## 如果有一个水平的区域,那么小山就只是水平滚动,所以... o ######## ...这只会使石头向侧面滚动。 o ######## 如果有垂直区域,岩石会掉下一步,所以... #o # # ##### ...会产量... # #o # ##### 您还将在图像上方的一行中分别接收图像的宽度和高度。因此,总的来说,我们的示例输入如下所示: 10 5 #o ## ### ###### ######### (请注意,这里的空格是空格。选择文本并查看我的意思。) 一些细节 当运行程序时岩石已经在最后一行时,您可以选择终止程序或输出未更改的输入 这座山只有下山了 您的程序应将输出的格式设置为与输入(包括尺寸)完全相同的格式,因此,如果将程序的输出通过管道传递给自身,则它将计算下一步。 您可以假设总有一条通向底部的道路,因此路径被“阻塞”的输入可能会导致未定义的行为 您可以假设最后一行始终有一个空格。岩石应该“停在”那里,因此,在几次调用该程序之后,始终将其输出通过管道传递到自身中,您应该最后将岩石放在最后一行,放置以前的空间。 …
17
code-golf