这项挑战是为了纪念2015年最佳PPCG的“年度最佳新秀” :泥泞鱼(因为我不是您要寻找的语言!)和夸脱塔(实现“真机”)。恭喜你!
背景
在海洋最深的海沟中,生活着一种稀有且难以捉摸的方形鱼,称为四方鱼。它看起来像来自“生命游戏”细胞自动机的滑翔机。这是两种大小不同的四方鱼类:
-o-
--o
ooo
--oo--
--oo--
----oo
----oo
oooooo
oooooo
您已经成功拍摄了四方鱼的照片,但是鱼很难被看见,因为它被泥覆盖了。现在,您必须编写一个程序来清理照片。
输入项
您的输入是字符的矩形2D网格,.-o#
以换行符分隔的字符串形式给出。如果需要,可以使用管道|
而不是换行符作为分隔符,并且可以假定使用一个尾随和/或前一个分隔符。
输入将仅包含一个边长为的四分之一鱼类3*n
,其中n ≥ 1
为正整数,并用.
代表海底的时期包围。鱼将始终处于上述方向。在此网格上,将恰好有一个非空的哈希矩形区域#
,代表一团泥土。斑点可能会部分或全部覆盖夸脱鱼类。输入示例
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
输出量
您的输出应通过用字符替换所有哈希值来从输入中生成.-o
,以便网格仅包含一个quartata-fish。总会有一种独特的方法来正确执行此替换;特别是,只有当大小为3×3时,泥块才会完全覆盖鱼。输出应使用与输入相同的分隔符。对于上述输入,正确的输出将是
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
规则和计分
您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。没有时间限制:如果在无限的时间和资源下您的提交最终将停止,那么您就可以了。
测试用例
Input:
.......
...-o-.
...--o.
##.ooo.
##.....
Output:
.......
...-o-.
...--o.
...ooo.
.......
Input:
...-o-.
...-#o.
...ooo.
.......
Output:
...-o-.
...--o.
...ooo.
.......
Input:
.........
.###.....
.###.....
.ooo.....
Output:
.........
.-o-.....
.--o.....
.ooo.....
Input:
.....
.###.
.###.
.###.
Output:
.....
.-o-.
.--o.
.ooo.
Input:
......
......
......
...###
...###
...###
Output:
......
......
......
...-o-
...--o
...ooo
Input:
###o--....
###o--....
###-oo....
###-oo....
###ooo....
###ooo....
###.......
Output:
--oo--....
--oo--....
----oo....
----oo....
oooooo....
oooooo....
..........
Input:
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Output:
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Input:
...--oo--....
.#########...
.#########...
.#########...
...oooooo....
...oooooo....
.............
.............
Output:
...--oo--....
...--oo--....
...----oo....
...----oo....
...oooooo....
...oooooo....
.............
.............
Input:
..............
..............
.########.....
.########.....
.########-....
.########-....
.########o....
.########o....
.########o....
.########o....
.########.....
..............
Output:
..............
..............
..............
..............
....--oo--....
....--oo--....
....----oo....
....----oo....
....oooooo....
....oooooo....
..............
..............
Input:
.................
.................
..---ooo---......
..--#########....
..--#########....
..--#########....
..--#########....
..--#########....
..oo#########....
..oo#########....
..oo#########....
....#########....
Output:
.................
.................
..---ooo---......
..---ooo---......
..---ooo---......
..------ooo......
..------ooo......
..------ooo......
..ooooooooo......
..ooooooooo......
..ooooooooo......
.................
Input:
.........................
.........................
....----oooo----.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....oooo########.........
....oooo########.........
....oooooooooooo.........
....oooooooooooo.........
.........................
Output:
.........................
.........................
....----oooo----.........
....----oooo----.........
....----oooo----.........
....----oooo----.........
....--------oooo.........
....--------oooo.........
....--------oooo.........
....--------oooo.........
....oooooooooooo.........
....oooooooooooo.........
....oooooooooooo.........
....oooooooooooo.........
.........................
......|......|......|...###|...###|...###
如果解决方案尝试所有可能的左上角坐标,并尝试在该区域上拟合6x6)