Antecedentes
Tatamibari es un rompecabezas lógico diseñado por Nikoli.
Un rompecabezas Tatamibari se juega en una cuadrícula rectangular con tres tipos diferentes de símbolos: +
, -
. y |
. El solucionador debe dividir la cuadrícula en regiones rectangulares o cuadradas de acuerdo con las siguientes reglas:
- Cada partición debe contener exactamente un símbolo en ella.
- Un
+
símbolo debe estar contenido en un cuadrado. - Un
|
símbolo debe estar contenido en un rectángulo con una altura mayor que el ancho. - Un
-
símbolo debe estar contenido en un rectángulo con un ancho mayor que la altura. - Cuatro piezas nunca pueden compartir la misma esquina. (Así es como se suelen colocar los mosaicos de tatami japoneses)
El siguiente es un ejemplo de rompecabezas, con una solución:
Tarea
Resuelve el rompecabezas Tatamibari dado.
De entrada y salida
La entrada es una cuadrícula 2D que representa el rompecabezas Tatamibari dado. Cada célula contiene uno de los cuatro personajes: +
, -
, |
, y un personaje de su elección para representar una célula no pista. En los casos de prueba, *
se usa un asterisco .
Puede elegir cualquier formato de salida adecuado que pueda representar inequívocamente cualquier solución válida para un rompecabezas Tatamibari. Esto incluye, pero no se limita a: (si tiene dudas, pregunte en los comentarios).
- Una lista de 4 tuplas, donde cada tupla incluye el índice superior, el índice izquierdo, el ancho y la altura de un rectángulo (o cualquier representación equivalente)
- Una cuadrícula numérica de la misma forma que la entrada, donde cada número representa un rectángulo
- Una lista de conjuntos de coordenadas, donde cada conjunto incluye todas las coordenadas de las celdas en un rectángulo
Si un rompecabezas tiene múltiples soluciones, puede generar cualquier número (una o más) de sus soluciones válidas. Se garantiza que la entrada tenga al menos una solución.
Casos de prueba
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
Reglas
Se aplican reglas estándar de código de golf . El código más corto en bytes gana.