0h n0 è un gioco molto semplice e divertente, un po 'come il Sudoku o il dragamine.
Regole del gioco
( Se possibile, ti consiglio di usare il tutorial nel gioco, è molto semplice e utile)
Il puzzle inizia con una n * n
tavola contenente alcuni pezzi fissi e alcune celle vuote, e il risolutore deve trovare un modo per riempire le celle vuote di pezzi e soddisfare tutti i vincoli imposti dai pezzi fissi. Ecco i tipi di pezzo che useremo con l'abbreviazione:
#
Pezzo rosso (blocca la vista di un pezzo blu)O
Pezzo blu.
Posizione vuotanumber
Pezzo blu numerato (number
è un numero di una cifra> 0)
Tutti i pezzi numerati devono vedere esattamente la stessa quantità di pezzi blu del numero. Per esempio:
#1O#O
...O.
Il 1
pezzo può vedere solo un altro pezzo blu.
Come i pezzi si vedono
Due pezzi blu possono vedersi se si trovano nella stessa riga o colonna e non c'è nessun pezzo rosso tra di loro. Esempio:
( S
è una posizione che il O
pezzo può vedere, X
non può essere visto)
S
S
X#SOSS
#
X
Ogni pezzo blu deve vedere almeno un altro pezzo blu:
#O#
Non funziona, ma:
#OO
O:
###
Lavora.
La scheda demo si risolve
.1..
..1.
....
22#2
Il 2 in basso a destra può vedere solo sopra se stesso, quindi devono essere blu e quello in alto a destra deve essere rosso.
.1.#
..1O
...O
22#2
Dato che 1
è pieno, possiamo circondarlo con pezzi rossi.
.1##
.#1O
..#O
22#2
L'angolo in alto a sinistra ora 1
può vedere solo in una direzione, quindi possiamo riempirlo.
O1##
.#1O
..#O
22#2
Ora su quelle ultime 2
s. Possiamo mettere 2 pezzi blu su di essi.
O1##
.#1O
OO#O
22#2
L'ultimo verrà riempito #
O1##
##1O
OO#O
22#2
Ingresso
L'input è una stringa multilinea. La dimensione sarà 9x9
senza spazio finale. Ha i seguenti tipi di pezzi:
.
Vuoto#
Rosso preimpostato, non modificabilenumber
Numero di preselezione, non può essere modificato
(Nota che il blu non sarà mai nell'input)
Produzione
L'output è uguale all'input, con la modifica che empty ( .
) viene sostituito con un rosso o un blu per risolvere la scheda e i numeri vengono sostituiti con pezzi blu ( O
).
Esempi
(Nota che possono essere possibili più soluzioni per ogni puzzle, ma devi solo mostrarne una)
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
Grazie a @PeterTaylor e @apsillers per tutto il loro aiuto nella sandbox!