У меня есть программа, очень похожая на загадку Эйнштейна, которую мне нужно разгадать в Прологе, я использовал найденное мной решение, чтобы помочь мне, Einstein.pl . Вот мои подсказки и проблемы: Есть пять офисов, каждый из которых имеет свой цвет, человек, работающий в другом секторе, имеет другой P C, пьет другой напиток и имеет другой мобильный телефон.
Подсказки:
- Сектор компьютеров имеет красный офис.
- Сектор организации и управления имеет MacBook Pro.
- Зеленый офис пьет кофе.
- Сектор экономики пьет кофе.
- Зеленый офис находится рядом с бежевым офисом (бежевый - это мпез в моей программе)
- У парня с iphone есть MacBook Air.
- У парня с ежевикой желтый офис.
- Офис посередине пьет молоко.
- Первый офис из международного сектора.
- Парень с нокией рядом с парнем с нетбуком.
- парень с ежевикой рядом с парнем с windows 7.
- парень с android пьет апельсиновый сок.
- У парня из сектора снабжения есть Эрикссон.
- Парень из международного сектора рядом с синим офисом.
Мне нужно найти, какой парень имеет ноутбук windows xp, а какой пьет воду.
Это то, что я сделал и Я думаю, что это должно работать, я не вижу ничего плохого, но когда я запускаю его, я получаю некоторые ошибки, и я не знаю, почему, если кто-то может помочь мне, это было бы хорошо, спасибо.
right_of(X, Y) :- X is Y+1.
left_of(X, Y) :- right_of(Y, X).
next_to(X, Y) :- right_of(X, Y).
next_to(X, Y) :- left_of(X, Y).
solution(Ps, Pc, Drink) :-
Ps = [ office(1, Color1, Sector1, Pc1, Drink1, Mobile1),
office(2, Color2, Sector2, Pc2, Drink2, Mobile2),
office(3, Color3, Sector3, Pc3, Drink3, Mobile3),
office(4, Color4, Sector4, Pc4, Drink4, Mobile4),
office(5, Color5, Sector5, Pc5, Drink5, Mobile5)],
hint(office(_, _,computers, _, _, red), Ps),
hint(office(_, _, organdman, macpro, _, _), Ps),
hint(office(_, green, _, _, coffee, _), Ps),
hint(office(_, _, economics, _, tea, _), Ps)
hint(office(A, green, _, _, _, _), Ps),
hint(office(B, mpez, _, _, _, _), Ps),
right_of(A,B),
hint(office(_, _, _, macair, _, iphone), Ps),
hint(office(_, yellow, _, _, _, blackberry), Ps),
hint(office(3, _, _, _, milk, _), Ps),
hint(office(1, _, international, _, _, _), Ps),
hint(office(C, _, _, _, _, nokia), Ps),
hint(office(D, _, _, netbook, _, _), Ps),
next_to(C, D),
hint(office(E, _, _, _, _,blackberry), Ps),
hint(office(F, _, _, windows7, _, _), Ps),
next_to(E, F),
hint(office(_, _, _, _, orange, android), Ps),
hint(office(_, _, supply, _, _, ericsson), Ps),
hint(office(G, _, international, _, _, _), Ps),
hint(office(H, blue, _, _, _, _), Ps),
next_to(G, H),
hint(office(Pc, _, _, windowsxp, _, _), Ps),
hint(office(Drink, _, _, _, water, _), Ps).
Вот ошибки, которые я получаю