Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,80 +0,0 @@
|
|||
(let ((*result* '()))
|
||||
(defun grid-cnt (n)
|
||||
(* n n) )
|
||||
(defun x-axis (n pos)
|
||||
(/ pos n) )
|
||||
(defun y-axis (n pos)
|
||||
(% pos n) )
|
||||
(defun chess-cnt (chess-map)
|
||||
(seq-count (lambda (x) x) chess-map))
|
||||
(defun check-conflict (n chess-map pos)
|
||||
(let ((is-conflict nil))
|
||||
(cl-loop for i from 0 to (1- (grid-cnt n)) while (not is-conflict) do
|
||||
(when (aref chess-map i)
|
||||
(when (or (= (x-axis n i) (x-axis n pos))
|
||||
(= (y-axis n i) (y-axis n pos))
|
||||
(= (abs (- (x-axis n i) (x-axis n pos)))
|
||||
(abs (- (y-axis n i) (y-axis n pos))))
|
||||
)
|
||||
(setq is-conflict 't)
|
||||
)
|
||||
)
|
||||
)
|
||||
is-conflict )
|
||||
)
|
||||
|
||||
(defun place-chess (n chess-map start-pos)
|
||||
(if (< (chess-cnt chess-map) n)
|
||||
(progn
|
||||
(let ()
|
||||
(cl-loop for i from start-pos to (1- (grid-cnt n)) do
|
||||
(when (not (aref chess-map i)) ;; check if place is empty
|
||||
;; check if place is on hold by other chess
|
||||
(when (not (check-conflict n chess-map i))
|
||||
(let ((map1 (copy-sequence chess-map)))
|
||||
(aset map1 i 't)
|
||||
(place-chess n map1 i)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(progn
|
||||
(if *result* (nconc *result* (list chess-map)) (setq *result* (list chess-map)))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defun show-result (n)
|
||||
(let ()
|
||||
(seq-map (lambda (map1)
|
||||
|
||||
(let ((map-txt ""))
|
||||
(message ">>>>>>>>>>>>>>")
|
||||
(seq-map-indexed (lambda (elm idx)
|
||||
(if (= (% idx n) 0)
|
||||
;;(setq map-text (concat map-txt "\n"))
|
||||
(progn
|
||||
(message map-txt)
|
||||
(setq map-txt "") )
|
||||
)
|
||||
(setq map-txt
|
||||
(concat map-txt (if elm "✓" "⓪")))
|
||||
) map1)
|
||||
(message "<<<<<<<<<<<<<<\n")
|
||||
)
|
||||
) *result*)
|
||||
)
|
||||
(message "%d solutions in total" (length *result*))
|
||||
)
|
||||
|
||||
(defun start-calculate (n)
|
||||
(let ((chess-map (make-vector (grid-cnt n) nil)))
|
||||
(place-chess n chess-map 0)
|
||||
)
|
||||
(show-result n)
|
||||
)
|
||||
|
||||
(start-calculate 8)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue