【发布时间】:2020-02-16 11:13:56
【问题描述】:
这是我的问题:
Hunter、Laura、Addiley(jack)、Ramey(Sally)和 Arnie(Jim)都在现场 在同一个宿舍里,有五个相邻的卧室。猎人不睡觉 第五间卧室,劳拉没有睡在第一间卧室。阿尼 不在第一个或最后一个卧室睡觉,而且他不在 与 Addiley 或 Laura 相邻的卧室。拉米睡在某个卧室 高于劳拉。谁睡在哪间卧室?写一个序言 程序来解决这个问题。
定义什么是邻接,然后是卧室,然后创建 一个
layout(X),允许您输入所有规则。
这是我到目前为止的代码,我也尝试了一些变体:
adjcnt(X,Y) :- X = (Y+1;Y-1).
rooms([ bedroom(_, 1), bedroom(_, 2), bedroom(_, 3), bedroom(_, 4), bedroom(_, 5) ]).
layout(X) :- rooms(X),
member( bedroom(hunter, V), X),
member( bedroom(laura, W), X),
member( bedroom(arnie, X), X),
member( bedroom(ramey, Y), X),
member( bedroom(addiley,Z), X),
V \= 5,
W \= 1,
X \= 1,
X \= 5,
X \= adjcnt(X,Z),
X \= adjcnt(X,W),
Y @> W.
主要问题是,我是否正确计算了相邻房间?以及如何正确实施。当我尝试运行代码时,我不断得到“不”。感谢任何可以帮助我的人!
【问题讨论】:
-
您的最新编辑(即删除原始拼图描述和代码)使问题和答案难以理解。最好重置此编辑。此外,剩下的代码仍然存在 @CapelliC 和我回答的问题。
-
我删除了大部分不重要的代码和逐字逐句的问题,因为我不希望同学简单地在谷歌上搜索整个问题,到这里结束,复制我的代码,而我们都因此而陷入不必要的麻烦抄袭。我确实更新了提示,希望可以解决问题。而且我不想将问题中的代码更新为正确的代码,以便其他人可以看到我遇到的错误,以防其他人遇到类似的情况。再次非常感谢您的帮助。
-
关于问题陈述,这没办法:一定要清楚、完整。关于代码,尽管您保留原始有问题的代码是正确的,否则答案将毫无意义。如果您对新代码有新问题,请发布新问题。 :) 此外,SO 是一种危险的工具:您可能会在答案中获得完整的代码,而您的讲师可以像您的同学一样轻松找到它。查看有关此主题的 this answer of mine 及其链接。 :) 干杯,
-
@JoeShmoe 请注意,根据terms of service(阅读“订阅者内容”),您在此处提供的内容,即使是在问题中,也属于 S.O.并且您放弃了对是否显示的控制权。如果您因为在学校而需要提示而不是完整答案,请将这部分作为问题陈述的一部分。
标签: prolog zebra-puzzle