42 lines
1.0 KiB
Common 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) |