reines.pl 373 B

123456789101112131415161718192021
  1. %*** Règles ***
  2. reines(N, Res) :-
  3. numlist(1,N,Base),
  4. permutation(Res,Base),
  5. diagsOK(Res).
  6. diagsOK( [ _ | [] ] ) :-
  7. true.
  8. diagsOK([Tete | Queue]) :-
  9. diagReine(Tete, Queue, 1),
  10. diagsOK(Queue).
  11. diagReine(_, [], _) :-
  12. true.
  13. diagReine(Reine, [T|Q], Col) :-
  14. (Reine + Col) =\= T,
  15. (Reine - Col) =\= T,
  16. diagReine(Reine, Q, Col+1).