Задний план
Вы - ученик могущественного волшебника, и ваш мастер в настоящее время разрабатывает заклинание для создания межмерного лабиринта, чтобы заманить в ловушку его врагов. Он хочет, чтобы вы запрограммировали его паровой компьютер для анализа возможных макетов. Программирование этой дьявольской машины очень опасно, поэтому вы захотите сделать код максимально коротким.
вход
Ваш ввод представляет собой двумерную сетку периодов .
и хэшей #
, обозначающую пустое пространство и стены, заданную в виде строки с разделителями новой строки. Всегда будет хотя бы один .
и один #
, и вы можете решить, есть ли завершающий символ новой строки или нет.
Эта сетка является планом бесконечного лабиринта, который создается путем выравнивания бесконечного числа копий сетки рядом друг с другом. Лабиринт разделен на полости , которые связаны компонентами пустых пространств (диагонально смежные пространства не связаны). Например, сетка
##.####
...##..
#..#..#
####..#
##...##
приводит к следующему лабиринту (продолжается бесконечно во всех направлениях):
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
##.######.######.####
...##.....##.....##..
#..#..##..#..##..#..#
####..#####..#####..#
##...####...####...##
Этот конкретный лабиринт содержит полость бесконечной области. С другой стороны, этот проект приводит к лабиринту только с конечными полостями:
##.####
##..###
####...
..####.
#..####
Выход
Ваш вывод должен быть истинным значением, если лабиринт содержит бесконечную полость, и ложным значением, если нет. Обратите внимание, что лабиринт может содержать как конечные, так и бесконечные полости; в этом случае вывод должен быть правдивым.
правила
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Дополнительные тестовые случаи
Бесконечные полости:
.#
#.#
...
#.#
#.###.#.###.#
#.#...#...#.#
#.#.#####.#.#
..#.#...#.#..
###.#.#.#.###
#...#.#.#...#
#.###.#.###.#
##.###
#..###
..##..
###..#
##..##
..#..#..#..#..#..#
.#..#..#..#..#..#.
#..#..#..#..#..#..
#.####.###.###.####
#...#..#...###..###
###.#..#.######..##
....####.#######...
###..###...########
##########.##....##
..###......##.##...
#.........##..#####
###########..###..#
#...........####..#
#.###########.##..#
#.##....##.....####
#.####.###.###.####
Конечные полости:
###
#.#
###
.#
#.
####
.#..
####
#.#.#
..#..
#####
..#..
#.#.#
#.#.#.#.#.#
..#...#.#..
###.###.###
..#.#......
#.#.#######
#.#.......#
#.#######.#
#.#.....#.#
#.#.#.#.#.#
##....#####
.#..#...##.
.##.#..#...
..###.###..
#..##.#####
#...##....#
#.#.#####.#
###..####.#
....####...
###...#####
###....##.#########
####...##....#...##
..####.#######.###.
....##..........##.
###..#####.#..##...
####..#..#....#..##
..###.####.#.#..##.
..###...#....#.#...
..####..##.###...##
#.####.##..#####.##
####...##.#####..##
###########
........#..
#########.#
..........#
.##########
.#.........
##.########
...#.......
.
и один #
на входе.