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

      Комментарии к записи Ответ в теме: Логическая задача: автомобильные гонки отключены
#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.

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

Вложения: