Die Abfrage ?- go(c, g).
gibt false zurück, gibt aber für ?- go(a, d).
den Wert wahr an. Ich verstehe es nicht wirklich, da ich die richtigen Regeln hinzugefügt habe, und für die meisten von ihnen funktioniert es.Testen in der Konsole
Hier sind die Aussagen Ich verwende:
door(a, b).
door(b, c).
door(c, d).
door(b, e).
door(e, f).
door(e, g).
go(FromRoom, ToRoom):-
door(FromRoom,ToRoom).
go(FromRoom, ToRoom):-
door(ToRoom, FromRoom).
go(FromRoom, ToRoom) :-
door(FromRoom, NextRoom),
go(NextRoom, ToRoom), !.
go(FromRoom, ToRoom):-
door(ToRoom,NextRoom),
go(NextRoom, FromRoom), !.
Ich kann nicht becus ändern Dies ist der Plan, den wir verwenden müssen die Regeln, die möglicherweise falsch sein – user1232622
Was ist Ihre Frage? – whd
meine Frage ist, dass gehen (c, g). sollte ja sagen, aber warum sagt es nein, wenn ich es in die Konsole stecke – user1232622