+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: reversi -*-
;;;;***************************************************************************
;;;;
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: strategies.cl
+;;;; Name: strategies.lisp
;;;; Purpose: Strategy routines for reversi
-;;;; Programer: Kevin M. Rosenberg, M.D.
+;;;; Programer: Kevin Rosenberg based on code by Peter Norvig
;;;; Date Started: 1 Nov 2001
-;;;; CVS Id: $Id: strategies.lisp,v 1.1 2002/10/25 08:36:42 kevin Exp $
;;;;
+;;;; $Id: strategies.lisp,v 1.5 2003/05/06 15:51:20 kevin Exp $
+;;;;
+;;;; This file is Copyright (c) 2001-2002 by Kevin M. Rosenberg
+;;;; and Copyright (c) 1998-2002 Peter Norvig
+;;;;
+;;;; Reversi users are granted the rights to distribute and use this software
+;;;; as governed by the terms of the Lisp Lesser GNU Public License
+;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;;***************************************************************************
-(in-package :reversi)
-(declaim (optimize (safety 1) (debug 3) (speed 3) (compilation-speed 0)))
+(in-package #:reversi)
+(eval-when (:compile-toplevel)
+ (declaim (optimize (safety 1) (space 0) (speed 3) (compilation-speed 0))))
(defun random-strategy (player board)
"Make any legal move."
(make-move move player
(copy-board board))))
moves))
- (best (apply #'max scores)))
- (declare (fixnum moves best))
+ (best (apply #'max scores)))
+ (declare (fixnum best))
(elt moves (position best scores)))))
(eval-when (:compile-toplevel :load-toplevel :execute)
(defstruct (node)
- (square nil :type square)
- (board nil :type board)
- (value nil :type integer))
+ (square(missing-argument) :type square)
+ (board (missing-argument) :type board)
+ (value (missing-argument) :type integer))
(defun alpha-beta-searcher2 (depth eval-fn)
"Return a strategy that does A-B search with sorted moves."
'(random ab3-df ab3-wt ab3-md-wt iago)))
+(defun text-reversi ()
+ "Sets up a text game between player and computer"
+ )