Nurikabe -- programmation logique par contrainte
Bonjour à tous et tout d'abord merci de regarder ce message.
Je dois développer un logiciel capable de résoudre un Nurikabe de taille variable en prolog (sicstus).
Le problème c'est que je ne sais pas par où commencer, j'ai quelques base de programmation par contraintes, à vrai dire très peu et je ne sais faire que les contraintes basique comme par exemple dire que A1 + A2 doit être égal à une somme donnée...
J'ai jusqu'à dimanche prochain pour résoudre ce problème.
J'aurais besoin d'une âme charitable pour venir a bout.
Je vous explique le problème:
Nurikabe est un puzzle qui consiste remplir une grille de X par X cases, dont certaines contiennent un chiffre, en fonction d'un certain nombre de contraintes.
Le but est de déterminer pour chaque carré si il est blanc ou noir.
Les cases noirs forment le "nurikabe".
Elles doivent toutes être contigües par un côté, ne doivent pas contenir de nombre et ne doivent contenir aucun bloc 2x2 ou plus grand.
Les cases blanches forment les îles.
Chaque nombre "n" doit faire partie d'un îlot de "n" cases blanches.
Chaque case blanche ne doit appartenir qu'à une seule île et chaque île doit contenir un nombre.
Évidemment il y a d'autres contraintes mais celles-ci sont les plus basiques à comprendre et à appliquer.
Voici une image d'un nurikabe résolu:
http://upload.wikimedia.org/wikipedi...ample1soln.png
Merci de votre aide.