home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / b / binprolog / !BinPro330 / progs / q8 < prev    next >
Encoding:
Text File  |  1994-02-12  |  557 b   |  25 lines

  1. % Variant of a program by T. Fruhwrith
  2.  
  3. go:-go('BMARK_q8:').
  4.  
  5. go(Mes):-
  6.     statistics(runtime,_),queens(8,_),fail
  7. ;    statistics(runtime,[_,T]),write(Mes=time(T)),nl.
  8.  
  9. queens(N,Qs):- gen_list(N,Qs), place_queens(N,Qs,_,_).
  10.  
  11. gen_list(0,[]).
  12. gen_list(N,[_|L]):-
  13.         N>0, M is N-1,
  14.         gen_list(M,L).
  15.  
  16. place_queens(0,_,_,_).
  17. place_queens(I,Cs,Us,[_|Ds]):-
  18.         I>0, J is I-1,
  19.         place_queens(J,Cs,[_|Us],Ds),
  20.         place_queen(I,Cs,Us,Ds).
  21.  
  22. place_queen(I,[I|_],[I|_],[I|_]).
  23. place_queen(I,[_|Cs],[_|Us],[_|Ds]):-
  24.         place_queen(I,Cs,Us,Ds).
  25.