オセロ必勝法 Part1
8×8のオセロの必勝法が知りたいので、それを目標にプログラミングしていきたいと思います。
手始めに、オセロ盤のマスを作りました。
言語はEmacs Lispです。
(defun Osero () (let ((table nil)) (defun initable (table sq) (defun initableat (table) (cond ((not table) (setq table '((0 0)))) ((= (cadr (car table)) (1- sq)) (setq table (push `(,(1+ (caar table)) 0) table))) (t (setq table (push `(,(caar table) ,(1+ (cadr (car table)))) table))) table)) (defun nest (f x n) (let ((i 0) (out x)) (while (<= i n) (setq out (funcall f out)) (setq i (1+ i))) out)) (setq table (nest 'initableat nil (1- (* sq sq)))))))
例
(Osero) initable (initable nil 2) ((1 1) (1 0) (0 1) (0 0))
次回は、石を返すプログラムを作ろうと思います。