Нуриколор (Уровень 3)

Oct 12 2020

Предыдущий уровень: Нуриколор (Уровень 2)
Следующий уровень: Нуриколор (Уровень 4)

Уровень 3 наступил, и сетка стала больше, теперь она составляет 8x8. Правила по-прежнему действуют.

  • На сетке есть цветные числа, которые указывают количество плиток, содержащихся в группе этого цвета.
  • Есть плитки с 1 цветом, которые обозначают цвет плитки.
  • Есть плитки с 2 или более цветами, которые указывают на пересечение цветов. Показаны все перекрестки, и это единственные перекрестки.
  • Серые плитки не входят ни в одну группу; они просто служат барьером.
  • Цель состоит в том, чтобы каждая не-серая плитка была покрыта определенным цветом.
  • 2 на 2 не серых квадрата одного цвета недопустимы.
  • На будущих уровнях будет несколько номеров одного цвета. Их группы никогда не должны пересекаться или быть ортогонально смежными друг с другом.
  • НОВИНКА: в некоторых местах будут цветные линии. Группа одного цвета не может пересекать цветные линии, но должна ограничивать линию.

Версия для дальтоников:

--- --- c10 xxx -b6 --- -p5 ---
--- -g- --- --- -cb --- --- -bp
--- --- --- -cg xxx --- --- -lp
--- --- xxx --- --- --- --- xxx
xxx -rg --- --- g11 xxx --- ---
--- -r8 --- xxx -o- -oy -ly ---
--- -o7 --- --- --- --- -l7 ---
--- --- --- --- xxx --- --- -y9

r6c3 red, up
r4c6 lime, left

r = red, o = orange, y = yellow, l = lime, g = green, c = cyan, b = blue, p = purple, xxx = gray

Запрос: Можно ли создать программу, которая генерирует подобные головоломки?

Ответы

6 JeremyDover Oct 12 2020 at 09:04

Готовая сетка:

Рассуждение:

Начните в правом верхнем углу. Квадрат слева от квадрата лайма / пурпура должен быть лаймовым, иначе лайм / пурпур будет изолирован от лайма. Мы также знаем, что квадрат справа от линии извести - это известь, так как известь не может достичь другой стороны. Это заставляет еще два квадрата лайма между серыми оттенками соединиться с лаймом 7, завершая область.

Продолжая:

Квадрат слева от синего / фиолетового квадрата должен быть синим, иначе общий квадрат будет отрезан от синего 6. Квадрат слева от него также должен быть синим, в результате чего квадрат слева от 5 будет фиолетовым, чтобы избежать синий 2x2, а верхний правый угол - фиолетовый, чтобы соединить пурпурные. Наконец, оставшийся квадрат должен быть синим, поскольку это единственный соседний цвет, который может расширяться. Сетка на данный момент:

Правый нижний угол:

Оранжевый 7 должен соединяться с оранжево-желтым квадратом через серые квадраты внизу, так как зеленый 11 блокирует единственный другой потенциальный путь. Переходя к желтому, единственный цвет, который может попасть в квадраты над 9, - желтый (салатовый закончен). В настоящее время у нас есть 6 желтых квадратов, поэтому три из четырех оставшихся незатененных квадратов, смежных с желтым, должны быть желтыми. Один из квадратов рядом с оранжево-желтым квадратом должен быть оранжевым, поэтому два других в нижнем ряду должны быть желтыми. Сетка на данный момент:

Нижний левый угол:

Обратите внимание: ни зеленый, ни голубой не могут проникать в нижний левый угол, так как он блокируется красной 8, красной линией и оранжевым, проходящим через промежуток между серыми квадратами. Таким образом, оставшиеся 8 незатененных квадратов должны быть либо красными, либо оранжевыми. У нас уже есть четыре квадрата с оранжевым оттенком, плюс мы знаем, что еще один квадрат, примыкающий к оранжево-желтому квадрату, оранжевый, поэтому только два из них имеют оранжевый оттенок, а остальные шесть - красные. Это означает, что квадрат под красной линией должен быть красным, так как за пределами этого угла не может быть дополнительных красных квадратов. Затем подключение заставляет остальную часть угла. Сетка на данный момент:

Заканчивать:

Остались только голубой и зеленый цвета. Ячейка к северо-западу от 11 должна быть голубого цвета, чтобы избежать зеленого блока 2x2, и этот квадрат - единственный голубой доступ к этому уголку. Мы также легко раскрашиваем квадрат к юго-западу от 10-го голубого цвета для подключения. Мы также должны окрасить квадрат к югу от 10-го голубого, потому что, если бы он был зеленым, у нас был бы зеленый остров, окруженный голубым, когда мы обходим, чтобы подключиться к 10. Теперь у нас есть ячейка, расположенная на две южнее 10, должна быть зеленый, чтобы избежать голубого 2x2. В заключение отметим, что область 2x2 над красно-зеленым квадратом должна иметь голубой блок, который должен проходить через верхний левый угол. Это легко заставит остальную часть сетки.

Заметка:

В исходной версии решение не уникальное. Два квадрата слева от оранжевого / желтого общего квадрата и под ним могут менять цвета и оставаться решением. OP обновил головоломку, чтобы избежать этой двусмысленности, в соответствии с представленным решением.