#1 27.03.09 00:14
Prolog
Помогите разобраться : в чем ошибка?
DOMAINS
intlist=integer*
queenlist=q*
queen (integer,integer)
PREDICATES
solution (queenlist)
notbeat (queen, queenlist)
belongs (integer, intlist).
template (queenlist)
start
CLAUSES
solution ([ ]).
solution ([queen (X,Y)|Rest]):- solution (Rest),
belongs (Y, [1,2,3,4,5,6,7,8]),
notbeat (queen (X,Y),Rest).
notbeat (_,[ ]):- !.
notbeat (queen (X,Y), [queen (X1,Y1)|Rest]):- Y<>Y1,
TmpY1=Y1-Y,
TmpX1=X1-X,
TmpY1<>TmpX1,
TmpX=X-X1,
TmpY1<>TmpX,
notbeat (queen (X,Y),Rest).
belongs (X, [X|L]).
belongs (X, [Y|L]):- belongs (X,L).
template ([queen (1,Y1),queen (2,Y2),queen (3,Y3),queen (4,Y4),queen (5,Y5),queen (6,Y6),queen (7,Y7),queen (8,Y8)]).
start:- template (S), solution(S), write(S), nl, fail.
start.
GOAL
start.
Offline

