我有一所房子,房间的房间定义为何时可以从一个房间到另一个房间,例如。
connection(garage,sidehall).
connection(sidehall,kitchen).
connection(kitchen,diningroom).
canget(X,Y):-connection(X,Y).
canget(X,Y):-connection(X,_),
write('player goes from '),write(X),write(' to '),write(Y),nl,
canget(_,Y).
我试图弄清楚如何做到这一点,以便玩家只有在拥有特定物品时才能从一个房间到另一个房间,例如当物品 = 手套时你只能在厨房里。
canget(X,Y,Item):-connection(X,Y,Item),canbein(Y,Item).
canget(X,Y,Item):-connection(X,Somewhere,Item),canbein(Somewhere,Item),canget(Somewhere,Y,Item).
尝试使用以下方法定义 canbein:
canbein(kitchen):- item(sword).
canbein(sidehall):- item(hat).
但这不起作用!
已经这样定义了我的项目,不确定这是否正确:
item(gloves,sword,helm,cheese).
基本上,我是否正确声明了我的项目值?我如何使用特定的项目值使 canget x to y false?
谢谢!