Fondo
Eres el aprendiz de un poderoso mago, y tu maestro está desarrollando un hechizo para crear un laberinto interdimensional para atrapar a sus enemigos. Quiere que programes su computadora a vapor para analizar los posibles diseños. Programar esta máquina diabólica es muy peligroso, por lo que querrá mantener el código lo más corto posible.
Entrada
Su entrada es una cuadrícula bidimensional de puntos .
y hashes #
, que significa espacio vacío y paredes, dados como una cadena delimitada por una nueva línea. Siempre habrá al menos uno .
y uno #
, y usted puede decidir si hay una nueva línea final o no.
Esta cuadrícula es el plano de un laberinto infinito, que se realiza alineando infinitas copias de la cuadrícula una al lado de la otra. El laberinto se divide en cavidades , que son componentes conectados de espacios vacíos (los espacios diagonalmente adyacentes no están conectados). Por ejemplo, la cuadrícula
##.####
...##..
#..#..#
####..#
##...##
da como resultado el siguiente laberinto (continúa infinitamente en todas las direcciones):
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
Este laberinto en particular contiene una cavidad de área infinita. Por otro lado, este plan resulta en un laberinto con solo cavidades finitas:
##.####
##..###
####...
..####.
#..####
Salida
Su salida será un valor verdadero si el laberinto contiene una cavidad infinita, y un valor falso si no. Tenga en cuenta que el laberinto puede contener cavidades finitas e infinitas; en ese caso, el resultado será verdadero.
Reglas
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba adicionales
Caries infinitas:
.#
#.#
...
#.#
#.###.#.###.#
#.#...#...#.#
#.#.#####.#.#
..#.#...#.#..
###.#.#.#.###
#...#.#.#...#
#.###.#.###.#
##.###
#..###
..##..
###..#
##..##
..#..#..#..#..#..#
.#..#..#..#..#..#.
#..#..#..#..#..#..
#.####.###.###.####
#...#..#...###..###
###.#..#.######..##
....####.#######...
###..###...########
##########.##....##
..###......##.##...
#.........##..#####
###########..###..#
#...........####..#
#.###########.##..#
#.##....##.....####
#.####.###.###.####
Cavidades finitas:
###
#.#
###
.#
#.
####
.#..
####
#.#.#
..#..
#####
..#..
#.#.#
#.#.#.#.#.#
..#...#.#..
###.###.###
..#.#......
#.#.#######
#.#.......#
#.#######.#
#.#.....#.#
#.#.#.#.#.#
##....#####
.#..#...##.
.##.#..#...
..###.###..
#..##.#####
#...##....#
#.#.#####.#
###..####.#
....####...
###...#####
###....##.#########
####...##....#...##
..####.#######.###.
....##..........##.
###..#####.#..##...
####..#..#....#..##
..###.####.#.#..##.
..###...#....#.#...
..####..##.###...##
#.####.##..#####.##
####...##.#####..##
###########
........#..
#########.#
..........#
.##########
.#.........
##.########
...#.......
.
y uno #
en la entrada.