0h n0 - дуже проста і приємна гра, трохи схожа на судоку або тральщик.
Правила гри
(Я рекомендую використовувати підручник у грі, якщо можете, це дуже просто і корисно)
Головоломка починається з n * n
дошки, яка містить деякі нерухомі шматки та кілька порожніх комірок, і розв’язувач повинен знайти спосіб заповнити порожні клітинки шматочками та задовольнити всі обмеження, накладені фіксованими шматочками. Ось типи штук, які ми будемо використовувати із абревіатурою:
#
Червоний шматок (блокує вигляд синього шматка)O
Синій шматок.
Порожнє місцеnumber
Пронумерований синій шматок (number
це одноцифрове число> 0)
Усі пронумеровані шматки повинні бачити рівно стільки ж синіх шматочків, скільки і номер. Наприклад:
#1O#O
...O.
На 1
творі видно лише один синій шматок.
Як шматки бачать один одного
Два сині шматки можуть бачити один одного, якщо вони знаходяться в одному рядку або стовпці, і жоден червоний шматок не знаходиться між ними. Приклад:
( S
це місце, яке O
може бачити твір, X
його не можна побачити)
S
S
X#SOSS
#
X
Кожен блакитний шматок повинен бачити хоча б один синій шматок:
#O#
Звичайна робота, але:
#OO
Або:
###
Робити роботу.
Демо-рада вирішити
.1..
..1.
....
22#2
Правий нижній 2 може бачити лише над собою, тому вони повинні бути синіми, а правий верхній - червоними.
.1.#
..1O
...O
22#2
Оскільки 1
заповнена, ми можемо оточити її червоними шматочками.
.1##
.#1O
..#O
22#2
У верхньому лівому куті зараз 1
видно лише в одному напрямку, тому ми можемо заповнити його.
O1##
.#1O
..#O
22#2
Тепер про останні останні 2
s. Ми можемо покласти над ними 2 синіх шматочки.
O1##
.#1O
OO#O
22#2
Останній заповниться #
O1##
##1O
OO#O
22#2
Вхідні дані
Введення - це рядковий рядок. Розмір не буде мати 9x9
місця. Він має такі типи штук:
.
Порожній#
Попередньо встановлений червоний колір, неможливо змінитиnumber
Номер попереднього налаштування неможливо змінити
(Зверніть увагу, що синій колір ніколи не буде на вході)
Вихідні дані
Вихід такий самий, як введення, при цьому зміна порожнього ( .
) замінюється або червоним, або синім для вирішення плати, а цифри замінюються синіми шматками ( O
).
Приклади
(Зверніть увагу, що для кожної головоломки можливо кілька варіантів, але вам потрібно показати лише одне з них)
Input:
........4
...3.1...
45...2.3.
..9......
1..6#44..
....4..5.
....4.36.
2.......6
1....4...
Output:
OOO###OOO
OOOO#O#OO
OOO#OO#OO
#OOOO#O##
O#OO#OOOO
O#OOOO#OO
#OOOO#OOO
OO#O#OOOO
O#OOOO#O#
Input:
..7..#...
#...8..11
2....5...
..5...48.
...#...4.
.5...6...
...1.2...
2.....6.8
.7..#....
Output:
OOOOO####
##OOOO#OO
O#OOOO###
OOO#OOOOO
OO##O##O#
#O##OOOOO
#O#O#O#OO
OO#OOOOOO
OOO###O#O
Input:
5.3..33..
...4...23
.6.6.34..
...3#....
....5..4.
.5....3..
7.98.6#.3
.5.6..2..
..6...2..
Output:
OOOOO####
##OOOO#OO
O#OOOO###
OOO#OOOOO
OO##O##O#
#O##OOOOO
#O#O#O#OO
OO#OOOOOO
OOO###O#O
Дякуємо @PeterTaylor та @apsillers за всю їхню допомогу в пісочниці!