Attachment 'BlockedNQueens.core.asp.txt'
Download 1 diagX(X,Y,XmY) :- num(X), num(Y), XmY = X - Y.
2 diagY(X,Y,XpY) :- num(X), num(Y), XpY = X + Y.
3
4 diagXp(D) :- diagX(X,Y,D).
5 diagYp(D) :- diagY(X,Y,D).
6
7 queen(X,Y) v noQueen(X,Y) :- num(X), num(Y), not block(X,Y).
8 queen(X,Y) v noQueen(X,Y) :- num(Y), num(X), not block(X,Y).
9
10 % exactly 1 queen in each row/col
11 :- num(X), not assignedRow(X).
12 :- num(X), not assignedCol(X).
13 assignedRow(X):- queen(X,_).
14 assignedCol(X):- queen(_,X).
15 :- queen(X,Y), queen(X,Z), Z != Y.
16 :- queen(X,Y), queen(Z,Y), Z != X.
17
18 % at most 1 queen on each diagonal
19 :- queen(X,Y), queen(XX,YY), sameDiag(X,Y,XX,YY).
20 sameDiag(X,Y,XX,YY) :- num(X), num(Y), num(XX), num(YY), num(K), XX = X + K, YY = Y + K.
21 sameDiag(X,Y,XX,YY) :- num(X), num(Y), num(XX), num(YY), num(K), XX = X + K, YY = Y - K.
22
Attached Files
You are not allowed to attach a file to this page.