Rätsel mit GNU Prolog, ähnlich wie Einstein Riddle

Ich bin ein absoluter Anfänger in der Programmierung und muss ein Rätsel in Prolog mit GNU Prolog erstellen und lösen, ähnlich dem Einstein-Rätsel, wenn auch weniger ausgefeilt. Ich habe versucht, ein Rätsel für die im Folgenden enthaltenen Elemente zu erstellenTabelle.

Mein Code sieht bisher so aus, aber ich verstehe wirklich nicht ganz, was ich hier falsch oder richtig mache. Ich kann den Code in GNU Prolog kompilieren, aber das Rätsel wird dadurch nicht gelöst:

middle(M,[_,M,_]).
right(A,B,[[_|A]|B]).
left(A,B,[A|[B|_]]).
run:-
   X = [_,_,_],
   middle([_,brown,_],X),   /* the brown guinea pig lives in the middle of the cage */
   member([brown,carrots,_],X), /* the brown guinea pig loves to eat carrots */
   member([_,salad,giggles],X), /* the salad eating guinea pig giggles */
   right([_,salad,_],[brown,_,_],X),    /* the salad eating guinea pig sits to the right of the brown guinea pig */
   left([black,_,_],[_,_,squeaks],X),   /* the black guinea pig sleeps to the left of the squeaking guinea pig */
   member([black,_,grumbles],X),    /* the black guinea pig grumbles */
   member([grey,_,giggles],X),  /* the grey guinea pig giggles*/
   write(X),nl, /* write out all fur colors */
   write('the '),write(N),write(' guinea pig loves to eat cucumbers'),nl. /* answer to the question */

Ich würde mich über jede Hilfe sehr freuen, da ich mit diesen Dingen nicht vertraut bin, aber eine Lösung für eine Klasse finden muss, an der ich teilnehme. Irgendwelche Tipps wären eine große Hilfe. Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage