Bonjour à tous,

Sans forcément fournir tous les détails, j'ai ces prédicats et règles :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
canWin(state(_,_,_,_,_,_,_,dead),[],_).
canWin(State1,[M|L],Borne):-Borne>0,move(State1,M,State2),canWin(State2,L,Borne-1).
 
solve(Moves,Borne):-canWin(state(z6,z6,z1,closed,closed,closed,closed,alive),Moves,Borne),!.
Sans entrer dans les détails, ce mini projet permet de résoudre un petit niveau d'un jeux (trouver un plus court chemin).
A l'heure actuelle pour trouver le nombre de coups minimum je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
solve(M,10).
...
solve(M,9).
...
etc
Jusqu'à ce que solve ne soit plus vérifié.


Comment faire pour que mon programme soit capable de déterminer le minimum de coup tout seul ?


Y'a une récurrence à écrire que je n'arrive pas à trouver ....


Merci de m'avoir lu,
et par avance merci à quiconque pourra m'aider