Галактики — это головоломка на стыке логики и геометрии.
Игровое поле в виде прямоугольной сетки символизирует вселенную с множеством разбросанных по ней чёрных дыр.
Задача игрока — провести границы так, чтобы всё поле разделилось на симметричные области, каждая из которых символизирует галактику.
Как и полагается, в центре каждой галактики должна находиться одна сверхмассивная чёрная дыра.
Если вам не совсем понятно, что такое центральная симметрия, на изображении ниже показаны примеры возможных очертаний галактик в этой головоломке:
Как и положено логической головоломке, существует только одно возможное решение, и его можно найти исключительно с помощью логики.
Для примера возьмём эту задачу:
https://grandgames.net/galaxies/id568408
Сначала можно убрать границы для тех чёрных дыр, которые находятся прямо на них, а не в центре ячеек (правая кнопка мыши или вторая кнопка внизу).
Основное решение лучше начинать с углов и крайних ячеек.
Так как чёрная дыра должна находиться в центре, границы поля ограничивают потенциальную зону галактики с одной или двух сторон. Используя симметрию, можно однозначно начертить границу с противоположной стороны для некоторых из них.
Также важно помнить, что в каждой галактике может быть только одна чёрная дыра, поэтому между соседними по вертикали или горизонтали дырами обязательно проходит граница.
Следуя этому принципу, по мере нахождения галактик появляются новые подсказки для соседних ячеек.
Также стоит учитывать, что не может быть участков без чёрной дыры — например, клетка (0,0) обязательно принадлежит дыре, расположенной под ней.
Анализируйте прежде всего ячейки, ограниченные с двух сторон.
Часто для них можно однозначно определить, к какой чёрной дыре они принадлежат, что автоматически даёт информацию о форме соответствующей галактики.
Таким образом можно определить расположение ещё нескольких областей:
И далее, соблюдая симметрию и учитывая ограничения для чёрных дыр, можно определить оставшиеся галактики.
Попробуйте сами — это несложно:
https://grandgames.net/galaxies/id568408
6