我是C#家伙,对prolog很新。我需要为以下场景编写一个prolog程序。任何人都可以帮助实现它。
两个人共用一个抽屉柜。胸部有4个抽屉,抽屉1和2属于Person1,抽屉3和4属于Person2。
他们将手机,钱包和书籍放在抽屉里。 Person2在抽屉里丢了手机。他检查了属于他但不能找到他的电话的抽屉3和4。然后他检查抽屉1和2,并在抽屉2中找到它。我需要为这个场景编写prolog代码。
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).
要运行的命令及其结果
?- phone_in(drawer4).
false.
?- phone_in(drawer3).
false.
?- phone_in(drawer1).
false.
?- phone_in(drawer2).
true.
我正在尝试编写如下条件。
?- phone_in(drawer2).
true.
想要根据上述查询的结果运行条件(true / false)。
if(false)
write("phone not found!");
else if(true)
write("please found in your search area");
请建议我改进我的代码。
答案 0 :(得分:1)
语法就像这样
( condition -> then_clause ; else_clause )
它可能以这种方式写成
( phone_in(drawer2) =:= true ->
write('phone found in your search area'),
fail
; phone_in(drawer2) =\= false ->
; write('phone not found!'),nl
)