petit probleme de prolog

petit probleme de prolog - Divers - Programmation

Marsh Posté le 09-12-2004 à 23:11:27    

alors voila, j'ai 9 cases, je voudrais tester qu'au moins 2 cases valent 2 par exemple, je pensais utiliser la récursivité d'une fonction mais il doit y avoir quelque chose en plus a ajouter :
 

Code :
  1. :- use_module(library(clpfd)).
  2.       vaut2(Case):-
  3. Case#=2.
  4.       plusde2vaut2( A1,A2,A3,B1,B2,B3,C1,C2,C3 ):-
  5. vaut2(A1), plusde2vaut2( 0,A2,A3,B1,B2,B3,C1,C2,C3 );
  6. vaut2(A2), plusde2vaut2( A1,0,A3,B1,B2,B3,C1,C2,C3 );
  7. vaut2(A3), plusde2vaut2( A1,A2,0,B1,B2,B3,C1,C2,C3 );
  8. vaut2(B1), plusde2vaut2( A1,A2,A3,0,B2,B3,C1,C2,C3 );
  9. vaut2(B2), plusde2vaut2( A1,A2,A3,B1,0,B3,C1,C2,C3 );
  10. vaut2(B3), plusde2vaut2( A1,A2,A3,B1,B2,0,C1,C2,C3 );
  11. vaut2(C1), plusde2vaut2( A1,A2,A3,B1,B2,B3,0,C2,C3 );
  12. vaut2(C2), plusde2vaut2( A1,A2,A3,B1,B2,B3,C1,0,C3 );
  13. vaut2(C3), plusde2vaut2( A1,A2,A3,B1,B2,B3,C1,C2,0 ).
  14.       solution(A1,A2,A3,B1,B2,B3,C1,C2,C3):-
  15. plusde2vaut2(A1,A2,A3,B1,B2,B3,C1,C2,C3).


 
si vous pouvez me dépanner.. merki

Reply

Marsh Posté le 09-12-2004 à 23:11:27   

Reply

Marsh Posté le 10-12-2004 à 08:36:49    

Développer en Prolog, je te plains... :( J'en ai fait un peu y'a 3 ans, ben j'ai pleuré. J'espère que qq'un saura t'aider parce que moi, j'ai tout oublié.

Reply

Marsh Posté le 29-12-2004 à 10:30:28    

Salut !  :bounce:  
 
suis nouvo ici !
je cherchais des infos pour pouvoir donner un peu plus de gueule graphiquement a mon jeu prolog.. mais je trouve po...
et pis suis tombe ici sur ton topic.. et pis me suis dis ke je pouvais te filer un ptit coup de main.
 
C ptetre un peu tard. mais c l'histoire de 5 mins ^^
 
je te propose une petite solution (celle qui suit) :
tu noteras ke le premier appel est superflu mais c pour pouvoir ajouter les predicats si tu veux faire des traitements annexes.
de cette maniere tu peux modifier ton fichier pour d'autre quantite de donnees, ou ajouter des predicats pour reformater les donnes brutes etc... bref c reutilisable et vite fait !
 


pd2v2(A1,A2,A3,B1,B2,B3,C1,C2,C3) :- cbVo2(A1,A2,A3,B1,B2,B3,C1,C2,C3, N), N>=2.
cbVo2(A1,A2,A3,B1,B2,B3,C1,C2,C3, N) :- cbLV2([A1,A2,A3,B1,B2,B3,C1,C2,C3],N).
 
cbLV2([], 0).
cbLV2([2|Q], N) :- cbLV2(Q, N1), N is N1+1.
cbLV2([T|Q], N) :- T \= 2, cbLV2(Q, N) .


 
voila si kkun a des infos pour une applets ou autre pouvant faire le lien avec un prg prolog. ca m'interesse ! bye  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed