introduction
Écrivez un solveur pour les puzzles Hitori en utilisant le moins d'octets.
Défi
Votre tâche consiste à écrire un solveur pour les énigmes logiques Hitori (ひ と り, le mot pour «seul» en japonais; la signification du nom du jeu est «Laissez-moi tranquille»). Les règles sont les suivantes:
- Vous êtes présenté avec une grille de cellules n par n, chaque cellule contient un entier compris entre 1 et n (inclus).
- Votre objectif est de vous assurer qu'aucun numéro n'apparaît plus d'une fois dans chaque ligne et chaque colonne de la grille, en supprimant les numéros de la grille donnée, sous réserve de la restriction indiquée dans les deux règles suivantes,
- Vous ne pouvez pas supprimer deux nombres de deux cellules adjacentes (horizontalement ou verticalement).
- Les cellules numérotées restantes doivent toutes être connectées les unes aux autres. Cela signifie que deux cellules numérotées restantes peuvent être connectées avec une courbe composée uniquement de segments reliant les nombres restants adjacents (horizontalement ou verticalement). (Merci à @ user202729 d'avoir signalé que cela manquait)
J'espère que les règles sont claires maintenant. S'il n'y a rien de clair sur les règles, consultez la page Wikipedia .
Cas de test
Les cellules desquelles les nombres sont supprimés sont représentées par des 0.
Input -> Output
4
2 2 2 4 0 2 0 4
1 4 2 3 -> 1 4 2 3
2 3 2 1 2 3 0 1
3 4 1 2 3 0 1 2
4
4 2 4 3 0 2 4 3
4 1 1 2 -> 4 1 0 2
3 1 2 1 3 0 2 1
4 3 1 3 0 3 1 0
5
1 5 3 1 2 1 5 3 0 2
5 4 1 3 4 5 0 1 3 4
3 4 3 1 5 -> 3 4 0 1 5
4 4 2 3 3 4 0 2 0 3
2 1 5 4 4 2 1 5 4 0
8
4 8 1 6 3 2 5 7 0 8 0 6 3 2 0 7
3 6 7 2 1 6 5 4 3 6 7 2 1 0 5 4
2 3 4 8 2 8 6 1 0 3 4 0 2 8 6 1
4 1 6 5 7 7 3 5 -> 4 1 0 5 7 0 3 0
7 2 3 1 8 5 1 2 7 0 3 0 8 5 1 2
3 5 6 7 3 1 8 4 0 5 6 7 0 1 8 0
6 4 2 3 5 4 7 8 6 0 2 3 5 4 7 8
8 7 1 4 2 3 5 6 8 7 1 4 0 3 0 6
9
8 6 5 6 8 1 2 2 9 8 0 5 6 0 1 2 0 9
5 6 2 4 1 7 9 8 3 5 6 2 4 1 7 9 8 3
5 8 2 5 9 9 8 2 6 0 8 0 5 0 9 0 2 0
9 5 6 6 4 3 8 4 1 9 5 6 0 4 3 8 0 1
1 1 6 3 9 9 5 6 2 -> 0 1 0 3 9 0 5 6 2
1 1 4 7 3 8 3 8 6 1 0 4 7 0 8 3 0 6
3 7 4 1 2 6 4 5 5 3 7 0 1 2 6 4 5 0
3 3 1 9 8 7 7 4 5 0 3 1 9 8 0 7 4 5
2 9 7 5 3 5 9 1 3 2 9 7 0 3 5 0 1 0
Ces cas de test proviennent respectivement de Concept Is Puzzles , PuzzleBooks , Concept Is Puzzles , Wikipedia et Youtube .
Spécifications
Pas besoin de vous soucier de la gestion des exceptions.
Vous pouvez supposer que l'entrée est toujours un puzzle valide avec une solution unique et vous pouvez en profiter en écrivant votre code.
C'est le code-golf , le plus petit nombre d'octets gagne.
4 <= n <= 9 (16 à l'origine, changé en 9 suivant la suggestion de Stewie Griffin, économise également quelques problèmes dans les E / S)
Vous pouvez prendre des entrées et fournir des sorties sous n'importe quelle forme standard , et vous êtes libre de choisir le format.
Certaines suggestions pour le format de sortie sont (mais vous n'êtes pas limité à celles-ci)
- Sortie de la grille finale
- Sortie de la grille contenant tous les numéros supprimés
- Afficher une liste de coordonnées de l'un des éléments ci-dessus
Comme d'habitude, les failles par défaut s'appliquent ici.
Connexes (inspirées par ce défi): Vérifiez si tous les éléments d'une matrice sont connectés
Mon dernier défi: l' extension du Game of Sevens
4 <= n <= 16
, mais le plus grand cas de test est pourn=9
. Je vous suggère soit de poster unn=16
cas de test, soit de dire4 <= n <= 9
. Beau défi d'ailleurs :)