Contexte
Tatamibari est un puzzle logique conçu par Nikoli.
Un puzzle Tatamibari est joué sur une grille rectangulaire avec trois types de symboles différents: +
, -
. et |
. Le solveur doit partitionner la grille en régions rectangulaires ou carrées selon les règles suivantes:
- Chaque partition doit contenir exactement un symbole.
- Un
+
symbole doit être contenu dans un carré. - Un
|
symbole doit être contenu dans un rectangle d'une hauteur supérieure à la largeur. - Un
-
symbole doit être contenu dans un rectangle d'une largeur supérieure à la hauteur. - Quatre pièces peuvent ne jamais partager le même coin. (C'est ainsi que les tuiles de tatami japonais sont généralement placées.)
Voici un exemple de puzzle, avec une solution:
Tâche
Résolvez le casse-tête Tatamibari donné.
Entrée sortie
L'entrée est une grille 2D qui représente le puzzle Tatamibari donné. Chaque cellule contient l' un des quatre personnages: +
, -
, |
et un caractère de votre choix pour représenter une cellule non-indice. Dans les cas de test, un astérisque *
est utilisé.
Vous pouvez choisir n'importe quel format de sortie approprié qui peut représenter sans ambiguïté toute solution valide à un puzzle Tatamibari. Cela comprend, mais sans s'y limiter: (en cas de doute, demandez dans les commentaires.)
- Une liste de 4 tuples, où chaque tuple comprend l'index supérieur, l'index gauche, la largeur et la hauteur d'un rectangle (ou toute représentation équivalente)
- Une grille numérique de la même forme que l'entrée, où chaque nombre représente un rectangle
- Une liste d'ensembles de coordonnées, où chaque ensemble comprend toutes les coordonnées des cellules dans un rectangle
Si un puzzle a plusieurs solutions, vous pouvez sortir n'importe quel nombre (une ou plusieurs) de ses solutions valides. L'entrée est garantie d'avoir au moins une solution.
Cas de 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
Règles
Les règles de code-golf standard s'appliquent. Le code le plus court en octets gagne.