projects
/
reversi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r10498: fix number type
[reversi.git]
/
strategies.lisp
diff --git
a/strategies.lisp
b/strategies.lisp
index e0e108d1d0ed1320b3c9d25b392570cc6bc82421..48140bbe424019c7ac8ec2bdc094dfa42edb256f 100644
(file)
--- a/
strategies.lisp
+++ b/
strategies.lisp
@@
-8,7
+8,7
@@
;;;; Programer: Kevin Rosenberg based on code by Peter Norvig
;;;; Date Started: 1 Nov 2001
;;;;
;;;; Programer: Kevin Rosenberg based on code by Peter Norvig
;;;; Date Started: 1 Nov 2001
;;;;
-;;;; $Id
: strategies.lisp,v 1.7 2003/06/12 13:08:43 kevin Exp
$
+;;;; $Id$
;;;;
;;;; This file is Copyright (c) 2001-2003 by Kevin M. Rosenberg
;;;; and Copyright (c) 1998-2002 Peter Norvig
;;;;
;;;; This file is Copyright (c) 2001-2003 by Kevin M. Rosenberg
;;;; and Copyright (c) 1998-2002 Peter Norvig
@@
-284,8
+284,7
@@
(defun negate-value (node)
"Set the value of a node to its negative."
(defun negate-value (node)
"Set the value of a node to its negative."
- (declare (fixnum node)
- (optimize (speed 3) (safety 0) (space 0)))
+ (declare (optimize (speed 3) (safety 0) (space 0)))
(setf (node-value node) (- (node-value node)))
node)
(setf (node-value node) (- (node-value node)))
node)
@@
-349,7
+348,7
@@
(declare (type board board)
(type player player)
(type fixnum achievable cutoff ply)
(declare (type board board)
(type player player)
(type fixnum achievable cutoff ply)
- (type
move
killer)
+ (type
(or null move)
killer)
(optimize (speed 3) (safety 0) (space 0)))
"A-B search, putting killer move first."
(if (= ply 0)
(optimize (speed 3) (safety 0) (space 0)))
"A-B search, putting killer move first."
(if (= ply 0)
@@
-400,13
+399,10
@@
(defun alpha-beta-searcher3w (depth eval-fn)
"Return a strategy that does A-B search with killer moves."
(defun alpha-beta-searcher3w (depth eval-fn)
"Return a strategy that does A-B search with killer moves."
- (declare (fixnum depth))
#'(lambda (player board)
#'(lambda (player board)
- (multiple-value-bind (value move)
- (alpha-beta3w player board losing-value winning-value
- depth eval-fn nil)
- (declare (ignore value))
- move)))
+ (nth-value 1
+ (alpha-beta3w player board losing-value winning-value
+ depth eval-fn nil))))
(defun put-first (killer moves)
"Move the killer move to the front of moves,
(defun put-first (killer moves)
"Move the killer move to the front of moves,
@@
-490,6
+486,7
@@
(defun iago (depth)
"Use an approximation of Iago's evaluation function."
(defun iago (depth)
"Use an approximation of Iago's evaluation function."
+ (declare (fixnum depth))
(alpha-beta-searcher3 depth #'iago-eval))
;; Maximizer (1-ply)
(alpha-beta-searcher3 depth #'iago-eval))
;; Maximizer (1-ply)
@@
-525,12
+522,15
@@
(defun ab3w-df (ply)
(defun ab3w-df (ply)
+ (declare (fixnum ply))
(alpha-beta-searcher3w ply #'count-difference))
(defun ab3w-wt (ply)
(alpha-beta-searcher3w ply #'count-difference))
(defun ab3w-wt (ply)
+ (declare (fixnum ply))
(alpha-beta-searcher3w ply #'weighted-squares))
(defun ab3w-md-wt (ply)
(alpha-beta-searcher3w ply #'weighted-squares))
(defun ab3w-md-wt (ply)
+ (declare (fixnum ply))
(alpha-beta-searcher3w ply #'modified-weighted-squares))
(alpha-beta-searcher3w ply #'modified-weighted-squares))