Wie schreibt man IF -, ELSE-Bedingungen in Prolog

Ich bin ein C# - Kerl und sehr neu in prolog. Ich brauche zum schreiben ein prolog-Programm für das folgende Szenario. Kann mir jemand bitte helfen, es zu erreichen.

Zwei Personen teilen sich eine Kommode. Brust 4 Schubladen und 1 Schublade und 2 gehört zu Person1 und der Schublade 3 und 4 gehört zu Person2.

Halten Sie Ihre Handys, Geldbörsen und Bücher in Schubladen. Person2 verloren sein Telefon in Schubladen. Er überprüft in der Schublade 3 und 4, die zu ihm gehört, konnte aber nicht finden sein Telefon. Dann überprüft er Schubladen 1 und 2 und fand es in der Schublade 2. Muss ich schreiben, prolog-code für dieses Szenario.

person(person1).
person(person2).

drawers(drawer1).
drawers(drawer2).
drawers(drawer3).
drawers(drawer4).

belongs_to(drawer1, person1).
belongs_to(drawer2, person1).
belongs_to(drawer3, person2).
belongs_to(drawer4, person2).

item(phone2).

phone_in(drawer).
phone_in(drawer2).

Befehle ausgeführt und Ihre Ergebnisse

?- phone_in(drawer4).
false.

?- phone_in(drawer3).
false.

?- phone_in(drawer1).
false.

?- phone_in(drawer2).
true.

Ich bin versucht zu schreiben, ein Zustand, wie folgt.

?- phone_in(drawer2).
true.

Ausführen möchten-Zustand basierend auf dem Ergebnis der obigen Abfrage (true/false).

if(false)
    write("phone not found!");
else if(true)
    write("please found in your search area");

Bitte mir empfehlen, um meinen code.

Siehe hier wie schreibt man if-then-else in Prolog.
Duplikat von stackoverflow.com/questions/14945623/... ?
Wenn Sie möchten, feedback auf Ihre arbeiten code posten eine Frage auf codereview.
siehe diese Frage
Warum wollt Ihr zu erklären, dass das Telefon nicht gefunden wird, wenn es in drawer4? Es scheint Ihre Logik muss erst einmal ein paar Updates.

InformationsquelleAutor user1211185 | 2015-01-08

Schreibe einen Kommentar