fink/gobot.lisp

42 lines
1.0 KiB
Common Lisp

(in-package :go-bot)
(defparameter *name* "gobot")
(defparameter *version* "0.01")
(defparameter *author* "Dan Ballard")
(defparameter *default-komi* 5.5)
(defparameter *komi* *default-komi*)
(defparameter *default-boardsize* 19)
(defparameter *boardsize* *default-boardsize*)
(defparameter *board* nil)
(defun make-board (size)
(let ((array (make-array size)))
(dotimes (i size)
(setf (aref array i) (make-array size :initial-element nil)))
array))
(defun set-komi (new-komi)
(setf *komi* new-komi))
(defun set-boardsize (newsize)
(setf *boardsize* newsize))
(defun init-board ()
(setf *board* (make-board *boardsize*)))
(defun init ()
;(init other game specific stuff)
(init-board))
(defun str-to-coord (str)
`( ,(- (char-code (char (string-upcase str) 0)) 65) ,(- (parse-integer (subseq str 1)) 1)))
(defun get-board (board coord)
(aref (aref board (first coord)) (second coord)))
(defun set-board (board coord val)
(setf (aref (aref board (first coord)) (second coord)) val))
(defun play (player coord-str)