While creativity plays an important role in the advancement of computer
science, great ideas are built on a foundation of practical experience
and knowledge. This book presents programming techniques which will be
useful in both AI projects and more conventional software engineering
endeavors. My primary goal is to enter- tain, to introduce new
technologies and to provide reusable software modules for the computer
programmer who enjoys using programs as models for solutions to hard and
interesting problems. If this book succeeds in entertaining, then it
will certainly also educate. I selected the example application areas
covered here for their difficulty and have provided both program
examples for specific applications and (I hope) the method- ology and
spirit required to master problems for which there is no obvious
solution. I developed the example programs on a Macintosh (TM) using the
Macintosh Common LISP (TM) development system capturing screen images
while the example programs were executing. To ensure portability to all
Common LISP environments, I have provided a portable graphics library in
Chapter 2. All programs in this book are copyrighted by Mark Watson.
They can be freely used in any free or commercial software systems if
the following notice appears in the fine print of the program's
documentation: "This program contains software written by Mark Watson."
No royalties are required. The program miniatures contained in this book
may not be distributed by posting in source code form on public
information networks, or in printed form without my written permission.