당해봐랏! ㅋㅋ
eight_queens([], _).
eight_queens([X/Y | Others], ValidYs) :-
eight_queens(Others, ValidYs),
member(Y, ValidYs),
safe_position(X/Y, Others).
eight_queens(XYs) :-
numlist(1, 8, Ys),
eight_queens(XYs, Ys).
safe_pos(_,[]).
safe_pos(X/Y, [X1/Y1 | Others]) :-
Y =\\= Y1,
Y1 - Y =\\= X1 - X,
Y1 - Y =\\= X - X1,
safe_pos(X/Y, Others).
?- eight_queens([1/Y1, 2/Y2, 3/Y3, 4/Y4, 5/Y5, 6/Y6, 7/Y7, 8/Y8]).
Y1 = 4,
Y2 = 2,
Y3 = 7,
Y4 = 3,
Y5 = 6,
Y6 = 8,
Y7 = 5,
Y8 = 1 ;
Y1 = 5,
Y2 = 2,
Y3 = 4,
Y4 = 7,
Y5 = 3,
Y6 = 8,
Y7 = 6,
Y8 = 1
?-
울렁 울렁~ 웩~
야미친아~ 한번 짜둔 재귀 다른 플젝에 재활용하는 빈도가 어느 정도 됨 ? 감으로 볼때.
utils 파일에 있는건 회사 옮길 때도 씀. 나의 생산성의 비밀이쥐 ㅋ
utils 박아 놓은 것은 뭐 어떤 방법으로 구현했든지 간에 두고 두고 쓰긴 하지.