Code: Show/Hide ahdahdahda
icficficfi gebGebgebg aHdahdahda icfIcficfi gebgebgebg ahDahdahda icFicfiCfi geBgebgEbg Ahdahdahda |
Code: Show/Hide in(H,[H|_]).
in(H,[_|T]) :- in(H,T). append([],A,A). append([A|B],C,[A|W]) :- append(B,C,W). vs([A,Y],[X,Y],L) :- A > 3, X is A-3, not(in([X,Y],L)). vs([A,Y],[X,Y],L) :- A < 8, X is A+3, not(in([X,Y],L)). vs([A,B],[A,Y],L) :- B < 8, Y is B+3, not(in([A,Y],L)). vs([A,B],[A,Y],L) :- B > 3, Y is B-3, not(in([A,Y],L)). vs([A,B],[X,Y],L) :- A > 2, B > 2, X is A-2, Y is B-2, not(in([X,Y],L)). vs([A,B],[X,Y],L) :- A > 2, B < 9, X is A-2, Y is B+2, not(in([X,Y],L)). vs([A,B],[X,Y],L) :- A < 9, B > 2, X is A+2, Y is B-2, not(in([X,Y],L)). vs([A,B],[X,Y],L) :- A < 9, B < 9, X is A+2, Y is B+2, not(in([X,Y],L)). gvs(_,0,_,[]). gvs(S,N,L,[A|B]) :- N > 0, M is N-1, append(L,[S],NL), !, vs(S,A,NL),gvs(A,M,NL,B). solve(N,B) :- gvs([1,1],N,[],B). |