X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=io.lisp;h=3de7a2aeb202a47f3bb6cd390ac5a6f07ed4befe;hb=d3d73d3ab232a53d1e625f6f57b712c31d6e0f00;hp=1837c18027bd413277828fc33b97d3b286cea2f8;hpb=1758cfb593196dd65c70199aa1ebd90cbd6e7ee5;p=reversi.git diff --git a/io.lisp b/io.lisp index 1837c18..3de7a2a 100644 --- a/io.lisp +++ b/io.lisp @@ -2,15 +2,15 @@ ;;;;*************************************************************************** ;;;; ;;;; FILE IDENTIFICATION -;;;; +;;;; ;;;; Name: io.lisp ;;;; Purpose: Basic Input-Output for reversi ;;;; Programer: Kevin Rosenberg based on code by Peter Norvig ;;;; Date Started: 1 Nov 2001 ;;;; -;;;; $Id: io.lisp,v 1.2 2002/10/25 09:23:39 kevin Exp $ +;;;; $Id$ ;;;; -;;;; This file is Copyright (c) 2001-2002 by Kevin M. Rosenberg +;;;; 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 @@ -18,15 +18,15 @@ ;;;; (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) -(let ((square-names +(let ((square-names (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." @@ -36,17 +36,17 @@ (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) (let (move-list) (dotimes (i (length moves)) (push (format nil "~2d: ~a ~a~%" - (1+ i) - (title-of (nth 1 (elt moves i))) - (symbol-name (88->h8 (nth 0 (elt moves i))))) - move-list)) + (1+ i) + (title-of (nth 1 (elt moves i))) + (symbol-name (88->h8 (nth 0 (elt moves i))))) + move-list)) (setq move-list (nreverse move-list)) (list-to-delimited-string move-list #\space)))) @@ -84,5 +84,5 @@ (format nil "~2d:~2,'0d" min sec))) - - + +