/*     Problema de las ocho reinas   */

solucion([]).

solucion([X,Y|Otras]):-
		solucion(Otras),
		pertenece(Y,[1,2,3,4,5,6,7,8]),
		no_ataca([X,Y],Otras).

pertenece(X,[X|_]).

pertenece(X,[_|Cola]):- 
		pertenece(X,Cola).

no_ataca(_,[]).

no_ataca([X,Y],[X1,Y1|Otras]):-
		Y =\= Y1,
		Y1 - Y =\= X1 - X,
		Y1 - Y =\= X - X1,
		no_ataca([X,Y],Otras).


tablero([1,_,2,_,3,_,4,_,5,_,6,_,7,_,8,_]).

/* Escritura de la solucion */

escribir_solucion([]).

escribir_solucion([X, Y | Cola]):-
         write(' Casilla: '), write(X),write(' , '), write(Y),
         nl,
         escribir_solucion(Cola).
         
         
/*
 *  Para obtener las soluciones:
 *
 * ?- tablero(S), solucion(S), escribir_solucion(S).
 *
 * Al teclear "punto y coma" (;) van a apareciendo las soluciones
 *
 */
 
  
       
