README for TkWorms
                                        Time-stamp: "1999-02-15 20:11:37 MST"

			       TkWorms

!!!! THIS IS AN UNDOCUMENTED ALPHA RELEASE !!!!

TkWorms is an implementation of an artificial-life game for Perl-Tk.
It is a game not in the sense of checkers, but in the sense of
Conway's Life.

In a Worms universe, worms crawl around an isometric grid of
triangles, leaving trails behind them, and turning in accordance to
simple rules that are based upon trails they come in contact with.
From the simple rules emerges surprising complexity.


BUGS & WARNINGS

Currently, Beeler worms may cause TkWorms to die if they encounter
certains kinds of trails that basically only non-Beeler worms may
make.  The death message will be "Unknown situation".  This will be
fixed in a future release.

Occasionally I've seen Perl 5.004_02 for MSWin segfault at global
destruction time.

I've only tested this under pTk.  This's my first hack at Tk, so lets
hope all the code I wrote is portable.  Suggestions welcome!

Currently the interface is pretty much: specify things on the command
line, then sit back and watch the worms go, until they all die.
Hopefully I (or someone ambitious who knows Tk better than I do) may
add more interactivity to the interface.


PREREQUISITES

This suite requires Perl 5 and pTk.


INSTALLATION

You install TkWorms, as you would install any Perl module
distribution, by running these commands:

   perl Makefile.PL
   make
   make test
   make install

If you want to install a private copy of TkWorms in your home
directory, then you should try to produce the initial Makefile with
something like this command:

  perl Makefile.PL LIB=~/perl


DOCUMENTATION

None yet.

Start it up with:

  perl -MGames::Worms::Tk -e Games::Worms::Tk::main

Command line arguments thereafter are interpreted as the names of
classes worms should come from.  (Currently, two are provided in this
distribution: Games::Worms::Random and Games::Worms::Beeler.)  If no
arguments are provided, TkWorms uses two Randoms and two Beelers.

For each name you specify, if it contains a slash, the rest of that
name is passed to the worm as an expression of its rules.

Example specifications:

  Games::Worms::Beeler
  Games::Worms::Random
  Games::Worms::Beeler/1a2d3caaa4b
  Games::Worms::Beeler/1A2B3ACAC4B
  Games::Worms::Beeler/1B2B3AAAB4A

(A Beeler worm with no rules specified makes up a random rule set
when it starts.  A random worm obeys no rules.)

See the Sci Am article on Beeler worms for the meaning of these Beeler
worm rule specifications.  I don't have the citation for the first run
of the article, but it's reproduced with addenda as:

"Worm Paths", chapter 17 in Martin Gardner, 1986, /Knotted Doughnuts
and Other Mathematical Entertainments/, W. H. Freeman and Company.


SUPPORT

Questions, bug reports, useful code bits, and suggestions for
TkWorms should be sent to me at sburke@netadventure.net


AVAILABILITY

The latest version of TkWorms is available from the Comprehensive
Perl Archive Network (CPAN).  Visit <http://www.perl.com/CPAN/> to
find a CPAN site near you.


COPYRIGHT

Copyright 1999, Sean M. Burke <sburke@netadventure.net>, all rights
reserved.  This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.


AUTHOR

Sean M. Burke <sburke@netadventure.net>
