НЕ могу понять, что за ошибка - Prolog

Узнай цену своей работы

Формулировка задачи:

Есть программа:
Листинг программы
  1. domains
  2. i = integer
  3. s = o;x
  4. кубик = куб(s Left,s Right,s Up,s Down,s Front,s Back)
  5. клетка = кл(i X,i Y,s)
  6. коор = к(i X,i Y)
  7. поле = клетка*
  8. кооры = коор*
  9. траектория = string*
  10. facts
  11. single d(i X,i Y)
  12. predicates
  13. ход_кубика(string,кубик,кубик)
  14. создать(i,i,i,i,поле)
  15. пометить(поле,i,i,поле)
  16. заполнено(поле)
  17. ход(i,i,кубик,поле,траектория,траектория,кооры)
  18. цель(i,i,поле,i,i,i,i,i)
  19. nondeterm координаты(string,i,i,i,i,i,i,i,i)
  20. след(string,траектория)
  21. nondeterm обратно(string,i,i,i,i,i,i,i,i)
  22. nondeterm вбок(string,i,i,i,i,i,i,i,i)
  23. goal
  24. write("Ширина поля:"),readint(L), write("Высота поля:"),readint(W),
  25. assert(d(L,W)),создать(1,L,1,W,P),пометить(P,1,1,P1),
  26. ход(1,1,куб(o,o,o,x,o,o),P1,[],Траектория,Координаты),
  27. write(Траектория,"\n",Координаты),exit.
  28. clauses
  29. d(255,255).
  30. ход_кубика("вперёд",куб(L,R,U,D,F,B),куб(L,R,B,F,U,D)):- not(B=x).
  31. ход_кубика("назад",куб(L,R,U,D,F,B),куб(L,R,F,B,D,U)):- not(F=x).
  32. ход_кубика("вправо",куб(L,R,U,D,F,B),куб(D,U,L,R,F,B)):- not(L=x).
  33. ход_кубика("влево",куб(L,R,U,D,F,B),куб(U,D,R,L,F,B)):- not(R=x).
  34. создать(L,L,W,W,[кл(L,W,o)]):-!.
  35. создать(L,L,Y,W,[кл(L,Y,o)|P]):-Y1=Y+1,!,создать(1,L,Y1,W,P).
  36. создать(X,L,Y,W,[кл(X,Y,o)|P]):-X1=X+1,!,создать(X1,L,Y,W,P).
  37. пометить([кл(X,Y,_)|P],X,Y,[кл(X,Y,x)|P]):-!.
  38. пометить([Кл|P],X,Y,[Кл|P1]):-пометить(P,X,Y,P1).
  39. заполнено([кл(_,_,x)|P]):-заполнено(P).
  40. заполнено([]).
  41. ход(_,_,_,P,_,[],[]):-заполнено(P),!.
  42. ход(X,Y,Куб,P,Т,[Н|Траек],[к(X1,Y1)|Коор]):- d(L,W),D=L+W, цель(X,Y,P,D,L,W,X0,Y0),
  43. координаты(Н,X,Y,X0,Y0,L,W,X1,Y1), not(след(Н,Т)),
  44. ход_кубика(Н,Куб,Куб1), пометить(P,X1,Y1,P1),!,
  45. ход(X1,Y1,Куб1,P1,[Н|Т],Траек,Коор).
  46. ход(X,Y,Куб,P,Т,[Н|Траек],[к(X1,Y1)|Коор]):- d(L,W),D=L+W, цель(X,Y,P,D,L,W,X0,Y0),
  47. координаты(Н,X,Y,X0,Y0,L,W,X1,Y1),
  48. ход_кубика(Н,Куб,Куб1), пометить(P,X1,Y1,P1),!,
  49. ход(X1,Y1,Куб1,P1,[Н|Т],Траек,Коор).
  50. ход(X,Y,Куб,P,Т,[Н12|Траек],[к(X2,Y2),к(X3,Y3)|Коор]):- d(L,W),D=L+W, цель(X,Y,P,D,L,W,X0,Y0),
  51. обратно(Н1,X,Y,L,W,X0,Y0,X2,Y2),
  52. ход_кубика(Н1,Куб,Куб1), пометить(P,X2,Y2,P1),
  53. вбок(Н2,X2,Y2,L,W,X0,Y0,X3,Y3),
  54. ход_кубика(Н2,Куб1,Куб2), пометить(P1,X3,Y3,P2),!,
  55. ход(X3,Y3,Куб2,P2,[Н21|Т],Траек,Коор).
  56. цель(X,Y,[кл(X1,Y1,o)|P],D,_,_,X0,Y0):- D1=abs(X-X1)+abs(Y-Y1),D>D1,!,
  57. цель(X,Y,P,D1,X1,Y1,X0,Y0).
  58. цель(X,Y,[_|P],D,X1,Y1,X0,Y0):- цель(X,Y,P,D,X1,Y1,X0,Y0).
  59. цель(_,_,[],_,X0,Y0,X0,Y0).
  60. обратно("назад",X,Y,_,_,_,Y0,X,Y1):- Y0>Y,Y1=Y-1,Y1>=1.
  61. обратно("вперёд",X,Y,_,W,_,Y0,X,Y1):- Y0<Y,Y1=Y+1,Y1<=W.
  62. обратно("влево",X,Y,_,_,X0,_,X1,Y):- X0>X,X1=X-1,X1>=1.
  63. обратно("вправо",X,Y,L,_,X0,_,X1,Y):- X0<X,X1=X+1,X1<=L.
  64. вбок("вправо",X,Y,L,_,_,Y0,X1,Y):- Y0<>Y,X1=X+1,X1<=L.
  65. вбок("влево",X,Y,_,_,_,Y0,X1,Y):- Y0<>Y,X1=X-1,X1>=1.
  66. вбок("вперёд",X,Y,_,W,X0,_,X,Y1):- X0<>X,Y1=Y+1,Y1<=W.
  67. вбок("назад",X,Y,_,_,X0,_,X,Y1):- X0<>X,Y1=Y-1,Y1>=1.
  68. координаты("вперёд",X,Y,_,Y0,_,W,X,Y1):- Y0>Y,Y1=Y+1,Y1<=W.
  69. координаты("назад",X,Y,_,Y0,_,_,X,Y1):- Y0<Y,Y1=Y-1,Y1>=1.
  70. координаты("вправо",X,Y,X0,_,L,_,X1,Y):- X0>X,X1=X+1,X1<=L.
  71. координаты("влево",X,Y,X0,_,_,_,X1,Y):- X0<X,X1=X-1,X1>=1.
  72. след("вперёд",["назад"|_]).
  73. след("назад",["вперёд"|_]).
  74. след("вправо",["влево"|_]).
  75. след("влево",["вправо"|_]).
Написана на Visual Prolog 5.2 И выдает такие ошибки (см. картнку) Как исправить? Помогите, уже в истерике сижу(((

Решение задачи: «НЕ могу понять, что за ошибка»

textual
Листинг программы
  1. facts - d

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут