Ответ в теме: Логическая задача: автомобильные гонки

      Комментарии к записи Ответ в теме: Логическая задача: автомобильные гонки отключены
#2668

Вообще, вам нужно:

  • выбрать 3 позиции (например, функцией member);
  • проверить чтобы они не повторялись (можно использовать функцию unique, но в моем коде это сделано при помощи трех сравнений);
  • добавить три ограничения, заданных в программе.

solution(KolyaPosition, AleshaPosition, PetyaPosition):- 
Positions = [1, 2, 3],
member(KolyaPosition, Positions),
member(AleshaPosition, Positions),
member(PetyaPosition, Positions),
KolyaPosition \= AleshaPosition, KolyaPosition \= PetyaPosition,
AleshaPosition \= PetyaPosition,
PetyaPosition \= 2, PetyaPosition \= 3,
KolyaPosition \= 3.

На скриншоте приведен результат работы программы. Если он у вас получался другим, значит скорее всего вы запускали программу неправильно (посмотрите внимательно на запрос, передаваемый интерпретатору).

Вложения: