Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.48 KB | None | 0 0
  1. :- use_module(library(clpfd)).
  2.  
  3. eightQueens(Queens) :-
  4.     length(Queens, 8),
  5.     Queens ins 1..8,
  6.     canPlaceQueens(Queens).
  7.  
  8. canPlaceQueens([]).
  9. canPlaceQueens([Queen|Queens]) :-
  10.     arentThreatened(Queens,Queen,1),
  11.     canPlaceQueens(Queens).
  12.  
  13. arentThreatened([], _, _).
  14. arentThreatened([Queen|Queens], NewQueen, ColumnsApart) :-
  15.     NewQueen #\= Queen,
  16.     abs(Queen - NewQueen) #\= ColumnsApart, %%diagonallySafe
  17.     NewApart #= ColumnsApart+1,
  18.     arentThreatened(Queens, NewQueen, NewApart).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement