我正在尝试使用 Prolog 解决爱因斯坦之谜。当我试图通过房屋(Hs)运行时,它显示否。任务是
- 英国人住在红房子里。
- 瑞典人养狗作为宠物。
- 丹麦人喝茶。
- 绿房子就在白宫的左边。
- 温室的主人喝咖啡。
- 抽 Pall Mall 烟的店主养鸟。
- 黄色房子的主人抽登喜路。
- 住在中心屋的主人喝牛奶。
- 挪威人住在第一间房子里。
- 抽 Blends 的主人住在养猫的主人旁边。
- 养马的主人住在抽登喜路的主人旁边。
- 抽 Bluemasters 的老板喝啤酒。
- 德国人抽王子烟。
- 挪威人住在蓝屋旁边。
- 抽 Blends 的主人住在喝水的人旁边。
房屋(Hs):- 长度(Hs,5), 成员(h(英语,_,_,_,红色),Hs), 成员(h(瑞典人,狗,_,_,_),Hs), 成员(h(_,_,_,咖啡,绿色),Hs), 成员(h(丹麦人,_,_,茶,_),Hs), 下一个(h(_,_,_,_,green), h(_,_,_,_,white), Hs), 成员(h(_,鸟,'Pall Mall',_,_),Hs), 成员(h(_,_,'登喜路',_,黄色),Hs), Hs = [_,_,h(_,_,_,牛奶,_),_,_], Hs = [h(挪威语,_,_,_,_)|_], 下一个(h(_,马,_,_,_), h(_,_,'登喜路',_,_), Hs), 下一个(h(_,_,混合,_,_), h(_,cat,_,_,_), Hs), 成员(h(_,_,'蓝色大师',啤酒,_),Hs), 成员(h(德语,_,'王子',_,_),Hs), 下一个(h(挪威语,_,_,_,_), h(_,_,_,_,blue), Hs), 下一个(h(_,_,'混合',_,_), h(_,_,_,水,_), Hs), 成员(h(_,鱼,_,_,_),Hs)。 下一个(A,B,Ls):-追加(_,[A,B|_],Ls)。 下一个(A,B,Ls):-追加(_,[B,A|_],Ls)。
我不知道出了什么问题。谢谢