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
Тепер про останні останні 2s. Ми можемо покласти над ними 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 за всю їхню допомогу в пісочниці!