КОМПЬЮТЕРРА


"Цикл кружков" (HELP) 

Автор: Ольга Леонтьева, 9360.g23@g23.relcom.ru
Дата публикации:23.11.2000

Соавторство: Константин Кноп


Цикл кружков (HELP)

5524.gif (8370 bytes) Достаточно большой класс головоломок - те, в которых требуется по заданным правилам провести замкнутую линию, проходящую через все клетки таблицы. Одной из задач этого класса были "Числовые ломаные". Продолжим знакомство с другими задачами на примере "Цикла кружков" - не очень сложной и довольно приятной в решении головоломки.

Find a single closed loop that passes through every square exactly once and never crosses itself. The path travels horizontally and vertically, but never diagonally. The path must make a 90° turn at every circle. Every second turn must be made at a circle, and every other turn must be made in a square without a circle.

Требуется провести замкнутую линию, проходящую через все центры клеток, состоящую из горизонтальных и вертикальных отрезков. В клетках с кружком линия должна поворачивать на 90°. Также участок линии между двумя кружками должен иметь ровно один поворот на 90°. Рассмотрим задачу, предлагавшуюся на прошедшем в США девятом чемпионате мира по пазлспорту.

5525.gif (9178 bytes) Решение здесь лучше всего начинать с углов a1 и j10. Проведем линии из них до кружков и отметим повороты в этих кружках. Из j1 линия влево не может идти больше чем на одну клетку (так как до ближайшего кружка обязательно должен быть один поворот). Значит, она идет влево на одну клетку и затем поднимается вверх до ближайшего кружка. Поэтому из j1 вверх линия идет до ближайшего возможного поворота.
5526.gif (9190 bytes) Проводим на одну клетку куски линий от j7, и делаем их поворот единственным возможным образом. Отмечаем единственный вариант прохода линии через f1 - вверх и вправо до ближайших кружков.
5527.gif (9552 bytes) Точно так же строим единственно возможный участок линии, проходящий через а5 - вверх и вправо до ближайших кружков, и через f10 - влево и вниз. Продолжаем единственным возможным способом построение линии из b2 - вправо и вверх, до кружка на с5.
5528.gif (9656 bytes) Проводим участок линии между кружками на а4 и b2. Из h7 ведем линию влево и вверх, а также вниз (пока неизвестно, на сколько клеток). Из d2 надо провести куски линий - вправо до поворота вниз, и вверх - пока неизвестно, насколько. Из h2 куски линий не могут идти вниз и влево (тогда получается замкнутый цикл, не проходящий по всей доске), то есть куски идут вверх и вниз. Образовавшийся угол в g2 заполняем линией от кружков на g3 и f2.
5529.gif (9669 bytes) Из i5 линия идет влево, а затем поворачвает либо вверх, либо вниз. При повороте вверх имеем опять замкнутый цикл, значит, линия поворачивает вниз, до кружка на h1. Тут же вырисовывается поворот из h6 влево, до кружка на b6.
5530.gif (9778 bytes) Картинка разделилась на две части, можно независимо продолжать решение и в верхней, и в нижней. Клетка d5 cтала угловой, и проводим от нее куски линий вправо и вниз. Доводим построение линии в нижней части до конца, тут уже все понятно - проще взять и провести, чем описывать это построение...
5531.gif (9976 bytes) "Довести до ума" верхнюю часть также уже не составляет особого труда. Из е10 линия идет вниз, и клетка d10 может быть пройдена единственным образом - из нее линия идет влево до а10, и вниз до d8. Проводим линию через b9 до кружков на с9 и b7, через c7 вверх до с9 и вправо до f7, и завершаем решение, соединив кружки на с10 и d8. Проверяем, что в решении нет ошибок, все сошлось, и даже получилась достаточно красивая картинка.

Ваши Ольга Леонтьева и Константин Кноп