sfondo
Sei l'apprendista di un potente mago e il tuo padrone sta attualmente sviluppando un incantesimo per creare un labirinto interdimensionale in cui intrappolare i suoi nemici. Vuole che tu programmi il suo computer a vapore per analizzare i possibili layout. La programmazione di questa diabolica macchina è estremamente pericolosa, quindi ti consigliamo di mantenere il codice il più breve possibile.
Ingresso
Il tuo input è una griglia bidimensionale di punti .
e hash #
, che significa spazio vuoto e muri, dato come una stringa delimitata da una nuova riga. Ce ne saranno sempre almeno uno .
e uno #
e potrai decidere se esiste una nuova riga finale o meno.
Questa griglia è il modello di un labirinto infinito, che viene realizzato allineando infinitamente copie della griglia una accanto all'altra. Il labirinto è diviso in cavità , che sono componenti collegati di spazi vuoti (gli spazi diagonalmente adiacenti non sono collegati). Ad esempio, la griglia
##.####
...##..
#..#..#
####..#
##...##
risulta nel seguente labirinto (continuato all'infinito in tutte le direzioni):
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
Questo particolare labirinto contiene una cavità di area infinita. D'altra parte, questo progetto si traduce in un labirinto con solo cavità finite:
##.####
##..###
####...
..####.
#..####
Produzione
La tua produzione deve essere un valore veritiero se il labirinto contiene una cavità infinita e un valore falso in caso contrario. Si noti che il labirinto può contenere sia cavità finite che infinite; in tal caso, l'output deve essere veritiero.
Regole
È possibile scrivere un programma completo o una funzione. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi di prova aggiuntivi
Cavità infinite:
.#
#.#
...
#.#
#.###.#.###.#
#.#...#...#.#
#.#.#####.#.#
..#.#...#.#..
###.#.#.#.###
#...#.#.#...#
#.###.#.###.#
##.###
#..###
..##..
###..#
##..##
..#..#..#..#..#..#
.#..#..#..#..#..#.
#..#..#..#..#..#..
#.####.###.###.####
#...#..#...###..###
###.#..#.######..##
....####.#######...
###..###...########
##########.##....##
..###......##.##...
#.........##..#####
###########..###..#
#...........####..#
#.###########.##..#
#.##....##.....####
#.####.###.###.####
Cavità finite:
###
#.#
###
.#
#.
####
.#..
####
#.#.#
..#..
#####
..#..
#.#.#
#.#.#.#.#.#
..#...#.#..
###.###.###
..#.#......
#.#.#######
#.#.......#
#.#######.#
#.#.....#.#
#.#.#.#.#.#
##....#####
.#..#...##.
.##.#..#...
..###.###..
#..##.#####
#...##....#
#.#.#####.#
###..####.#
....####...
###...#####
###....##.#########
####...##....#...##
..####.#######.###.
....##..........##.
###..#####.#..##...
####..#..#....#..##
..###.####.#.#..##.
..###...#....#.#...
..####..##.###...##
#.####.##..#####.##
####...##.#####..##
###########
........#..
#########.#
..........#
.##########
.#.........
##.########
...#.......
.
e uno #
nell'input.