Вот мой вопрос:
Охотник, Лора, Аддили (Джек), Рамей (Салли) и Арни (Джим) живут в одном общежитии с пятью смежными спальнями. Охотник не спит в 5-й спальне, а Лора не спит в первой спальне. Арни не спит в первой или последней спальне и не находится в спальне рядом с Аддили или Лорой. Рэми спит в какой-то спальне выше, чем у Лоры. Кто в каких спальнях спит? Напишите программу Prolog для решения этой проблемы.
Определите, что такое смежность, затем, какие спальни, а затем создайте 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.
Основная проблема заключается в том, правильно ли я учитываю соседние комнаты? и как мне правильно это реализовать. Я постоянно получаю «НЕТ», когда я пытаюсь запустить код. Спасибо всем, кто может мне помочь !!