+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: reversi -*-
;;;;***************************************************************************
;;;;
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: io.cl
+;;;; Name: io.lisp
;;;; Purpose: Basic Input-Output 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: io.lisp,v 1.1 2002/10/25 08:36:42 kevin Exp $
;;;;
+;;;; $Id$
+;;;;
+;;;; This file is Copyright (c) 2001-2003 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)))
+(in-package #:reversi)
(eval-when (:compile-toplevel :load-toplevel :execute)
(cross-product #'concat-symbol
'(? A B C D E F G H ?)
'(? 1 2 3 4 5 6 7 8 ?))))
+ (declare (type list square-names))
(defun h8->88 (str)
"Convert from alphanumeric to numeric square notation."
(defun 88->h8 (num)
"Convert from numeric to alphanumeric square notation."
(if (valid-p num)
- (elt square-names num)
+ (nth num square-names)
num)))
(defun moves-to-string (moves)