Prolog - prolog reinas

 
Vista:

prolog reinas

Publicado por cesar contreras (1 intervención) el 04/12/2008 17:11:59
Hola que tal aki solicitando ayuda para lograr poner un contador en este codigo que resuelve el problema de las N-reinas, si alguien me pudiera ayudar necesito que por cada ves que imprima una solucion diga el numero de esta ejemplo:
1S=[]
2S=[]

ojala alguien pueda ayudarme gracias

main :-
write('Introduce el número de reinas: '),read(T), reinas(T, Qs),
write(Qs),
nl, fail.

reinas(N,Qs) :-
rango(1,N,Ns), reinas(Ns,[],Qs).
reinas([],Qs,Qs).

reinas(UnplacedQs,SafeQs,Qs) :-
select(UnplacedQs,UnplacedQs1,Q),
no_atacada(SafeQs,Q),
reinas(UnplacedQs1,[Q|SafeQs],Qs).

no_atacada(Xs,X) :-
no_atacada(Xs,X,1).

no_atacada([],_,_) :- !.

no_atacada([Y|Ys],X,N) :-
X == Y+N, X == Y-N, %filas y diagonales distintas
N1 is N+1,
no_atacada(Ys,X,N1).

select([X|Xs],Xs,X).

select([Y|Ys],[Y|Zs],X) :-
select(Ys,Zs,X).

rango(N,N,[N]) :- !.

rango(M,N,[M|Ns]) :-
M < N,
M1 is M+1,
rango(M1,N,Ns).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder