Решение головоломки на Prolog
Формулировка задачи:
Доброго времени суток! Требуется помощь в решении задачи на Prolog :
Пользуясь методом «образовать и проверить», напишите PROLOG-программу для решения следующей головоломки:
Пять разноцветных домиков, пронумерованных с 1-го по 5-ый, расположены в ряд.
Похоже, их хозяева перестарались, пытаясь приукрасить своё жильё снаружи.
В каждом доме стены, окна и крыша выкрашены в разные цвета радужной палитры.
Необходимо определить цвета «частей» каждого дома, если известно, что:
1. Дом с оранжевой крышей и синими стенами расположен не в центре.
2. В третьем доме зелёные окна.
3. Во втором доме жёлтые стены и красные окна.
4. Пятый дом под красной крышей.
5. Дом с оранжевыми стенами и голубыми окнами расположен рядом с домом с фиолетовыми стенами под зелёной крышей.
6. Среди этих домов есть дома с голубой и жёлтой крышей.
7. Кому-то из хозяев очень нравятся стены красного цвета, а кто-то умудрился покрасить окна своего дома в синий цвет.
8. Фиолетовые окна смотрятся просто ужасно.
Буду признателен за любую помощь!
Решение задачи: «Решение головоломки на Prolog»
textual
Листинг программы
form_check_houses([], Houses) :- memberchk1( house(Num, [blue, _, orange]), Houses ), %\+ Num = 3, memberchk1( house(Num1, [orange, cyan, _]), Houses ), memberchk1( house(Num2, [violet, _, green]), Houses ), abs(Num1 - Num2) =:= 1, %memberchk1( house(_, [_, _, cyan]), Houses ), memberchk1( house(_, [_, _, yellow]), Houses ), memberchk1( house(_, [red, _, _]), Houses ), memberchk1( house(_, [_, blue, _]), Houses ), %memberchk1( house(_, [_, violet, _]), Houses ), true.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д