Suivent six mots anglais : abalone, abandon, anagram, connect, elegant, enhance. On cherche à les arranger à la manière d'un mot croisé comme sur la figure ci-dessous
Pour cela on propose la base de connaissances suivante :
word(abalone,a,b,a,l,o,n,e). word(abandon,a,b,a,n,d,o,n). word(enhance,e,n,h,a,n,c,e). word(anagram,a,n,a,g,r,a,m). word(connect,c,o,n,n,e,c,t). word(elegant,e,l,e,g,a,n,t).
Définir un prédicat crosswd à 6 arguments qui donne le résultat. Les trois premiers arguments seront les mots verticaux, les trois derniers seront les mots horizontaux.
Solution : ici
Trois pions blancs et trois pions noirs sont alignés, séparés par une case libre, dans une ligne qui comporte sept cases !
Position initiale : BBB-NNN
A chaque coup, une seule des quatre actions suivantes est possible :
BBB-NNN -> BB-BNNN
BBB-NNN -> BBBN-NN
BBBN-NN -> BB-NBNN
BB-BNNN -> BBNB-NN
Ecrire un programme Prolog qui permet de passer de la configuration initiale à la configuration suivante :
NNN-BBB
en affichant toutes les positions intermédiaires.
Vous avez suffisamment cherché, sans trouver ?
Vous trouverez un autre exemple de résolution, sur le célèbre problème du cavalier d'Euler, sur le site commentcamarche.net.