sfondo
Tatamibari è un puzzle di logica disegnato da Nikoli.
Un Tatamibari puzzle è giocato su una griglia rettangolare con tre diversi tipi di simboli in essa: +
, -
. e |
. Il solutore deve suddividere la griglia in regioni rettangolari o quadrate secondo le seguenti regole:
- Ogni partizione deve contenere esattamente un simbolo al suo interno.
- Un
+
simbolo deve essere contenuto in un quadrato. - Un
|
simbolo deve essere contenuto in un rettangolo con un'altezza maggiore della larghezza. - Un
-
simbolo deve essere contenuto in un rettangolo con una larghezza maggiore dell'altezza. - Quattro pezzi non possono mai condividere lo stesso angolo. (Questo è il modo in cui vengono posizionate le piastrelle di tatami giapponesi.)
Di seguito è riportato un esempio di puzzle, con una soluzione:
Compito
Risolvi il puzzle Tatamibari indicato.
Input Output
L'input è una griglia 2D che rappresenta il puzzle Tatamibari dato. Ogni cella contiene uno dei quattro personaggi: +
, -
, |
, e un personaggio di vostra scelta per rappresentare una cella non indizio. Nei casi di test, *
viene utilizzato un asterisco .
Puoi scegliere qualsiasi formato di output adatto che possa rappresentare in modo inequivocabile qualsiasi soluzione valida per un puzzle Tatamibari. Ciò include, ma non è limitato a: (in caso di dubbio, chiedere nei commenti.)
- Un elenco di 4 tuple, in cui ogni tupla include l'indice superiore, l'indice sinistro, la larghezza e l'altezza di un rettangolo (o qualsiasi rappresentazione equivalente)
- Una griglia numerica della stessa forma dell'input, in cui ogni numero rappresenta un rettangolo
- Un elenco di insiemi di coordinate, in cui ogni insieme include tutte le coordinate delle celle in un rettangolo
Se un puzzle ha più soluzioni, puoi generare un numero qualsiasi (una o più) delle sue soluzioni valide. È garantito che l'input abbia almeno una soluzione.
Casi test
Puzzle:
|-*
*+|
*-*
Solution:
122
134
554
=====
Puzzle:
+***
**|*
*+**
***-
Solution:
1122
1122
3322
3344
======
Puzzle:
|*+*+
*****
****-
***+|
+****
Solution:
12233
12233
44444
55667
55667
=======
Puzzle:
****-**
**-**|*
*|*****
****-**
*******
**+*|**
*****+*
One possible solution:
1122222
1133344
1155544
1155544
6667744
6667788
6667788
===========
Puzzle:
*-****|+**
+*-******|
****+*****
*-******||
**++|*****
+****-|***
-****-**+*
********-*
|*+*+|****
*-*--**+*+
Solution:
1111122334
5666622334
7777822994
7777A2299B
CCDEA2299B
CCFFFFGGHH
IIIIJJGGHH
KLLMMNGGOO
KLLMMNGGPP
QQRRSSSTPP
Regole
Si applicano le regole standard del code-golf . Vince il codice più breve in byte.