array[0..9] of var 0..9: queens;

queens(N) :-
  queens(N, 0).

queens(N, I) :-
  I < N,
  queens(N, I, I + 1),
  queens(N, I + 1).
queens(N, N).

queens(N, I, J) :-
  J < N,
  queens[I] != queens[J],
  queens[I] + I != queens[J] + J,
  queens[I] - I != queens[J] - J,
  queens(N, I, J + 1).
queens(N, _, N).

include "prolog.plz";

labeling_list([], _, _).
labeling_list([H | T], Min, Max) :-
    between(Min, H, Max).

:- queens(10), labeling_list(queens, 0, 9).

output [show(queens)];