r5141: Auto commit for Debian build
[reversi.git] / base.lisp
index bbcd87209a1b349a8d46e9712d395c3f090b8156..03a628f7846ff12198dd15b2543f1584f311f4de 100644 (file)
--- a/base.lisp
+++ b/base.lisp
@@ -8,7 +8,7 @@
 ;;;;  Programer:      Kevin Rosenberg based on code by Peter Norvig
 ;;;;  Date Started:   1 Nov 2001
 ;;;;
-;;;; $Id: base.lisp,v 1.4 2003/06/12 12:42:13 kevin Exp $
+;;;; $Id: base.lisp,v 1.7 2003/06/17 05:47:18 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2001-2002 by Kevin M. Rosenberg 
 ;;;; and Copyright (c) 1998-2002 Peter Norvig
     :clock (make-clock +default-max-minutes+)))
 
 
-(defun name-of (piece) (char ".@O?" piece))
-(defun title-of (piece) (nth (1- piece) '("Black" "White")) )
+(defun name-of (piece) (schar ".@O?" piece))
+(defun title-of (piece)
+  (declare (fixnum piece))
+  (nth (the fixnum (1- piece)) '("Black" "White")) )
        
 (defmacro opponent (player) 
   `(if (= ,player black) white black))
   `(the piece (aref (the board ,board) (the square ,square))))
 
 (defparameter all-squares
-    (loop for i fixum from 11 to 88 when (<= 1 (mod i 10) 8) collect i)
+    (loop for i fixnum from 11 to 88
+         when (<= 1 (the fixnum (mod i 10)) 8)
+         collect i)
   "A list of all squares")
 
 (defun initial-board ()
 (defun count-difference (player board)
   "Count player's pieces minus opponent's pieces."
   (declare (type board board)
-          (fixnum player)
+          (type fixnum player)
           (optimize (speed 3) (safety 0) (space 0)))
   (the fixnum (- (the fixnum (count player board))
-                (the fixum (count (opponent player) board)))))
+                (the fixnum (count (opponent player) board)))))
 
 (defun valid-p (move)
   (declare (type move move)
   (declare (type board board)
           (type move move)
           (type player player)
-          (optimize speed (safety 0))
-)
+          (optimize speed (safety 0) (space 0)))
   (if (= (bref board move) empty)
       (block search
        (let ((i 0))
   (let ((c (+ move dir)))
     (declare (type square c))
     (and (= (the piece (bref board c)) (the player (opponent player)))
-         (find-bracketing-piece (+ c dir) player board dir))))
+         (find-bracketing-piece (the fixnum (+ c dir)) player board dir))))
 
 (defun find-bracketing-piece (square player board dir)
   "Return the square number of the bracketing piece."