r5105: Auto commit for Debian build
[reversi.git] / strategies.lisp
index c2cade730dbc034d99bba3498b72fec6842ff592..e0e108d1d0ed1320b3c9d25b392570cc6bc82421 100644 (file)
@@ -8,7 +8,7 @@
 ;;;;  Programer:      Kevin Rosenberg based on code by Peter Norvig
 ;;;;  Date Started:   1 Nov 2001
 ;;;;
-;;;; $Id: strategies.lisp,v 1.6 2003/06/12 12:42:13 kevin Exp $
+;;;; $Id: strategies.lisp,v 1.7 2003/06/12 13:08:43 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2001-2003 by Kevin M. Rosenberg 
 ;;;; and Copyright (c) 1998-2002 Peter Norvig
@@ -24,8 +24,7 @@
   "Make any legal move."
   (declare (type player player)
           (type board board))
-  (random-elt (legal-moves player board)))
-
+  (random-nth (legal-moves player board)))
 
 (defun maximize-difference (player board)
   "A strategy that maximizes the difference in pieces."
 (defun negate-value (node)
   "Set the value of a node to its negative."
   (declare (fixnum node)
-          (speed 3) (safety 0) (space 0))
+          (optimize (speed 3) (safety 0) (space 0)))
   (setf (node-value node) (- (node-value node)))
   node)
 
 
 (defun alpha-beta-searcher3w (depth eval-fn)
   "Return a strategy that does A-B search with killer moves."
+  (declare (fixnum depth))
   #'(lambda (player board)
       (multiple-value-bind (value move)
           (alpha-beta3w player board losing-value winning-value
   "Total edge evaluation for player to move on board."
   (declare (type board board)
           (type player player)
-          (optimize (speed 3) (safety 0) (space 0))
-  (loop for edge-list in *edge-and-x-lists*
-        sum (aref *edge-table*
-                  (edge-index player board edge-list))))
+          (optimize (speed 3) (safety 0) (space 0)))
+  (loop for edge-list of-type (simple-array fixnum (*)) in *edge-and-x-lists*
+      sum (aref *edge-table* (edge-index player board edge-list))))
 
 (defun iago-eval (player board)
   "Combine edge-stability, current mobility and