solitaire500: 2000 solitaire 500 draft: "Copyright law and the

This message is a draft of the rules for the 2000 Solitaire 500,
which is an extension of the 1999 game, the rules of which
remain available at

The game will be Wheels once again, played with 52-card standard
decks of cards.  The racing metaphor has been extended by explicitly
a form of "drafting" which is the racing practice of reducing wind
by positioning oneself closely behind a competitor: all calid solutions
be made available to all entrants, but they must be uniquely modified
before they can be returned to the server for credit by a different
The justification for this restriction is that any entrant submitting a
solution for a common problem gets a copyright on the solution.  It will
up to each entrant to optimize the executive decision to "develop a
from scratch in-house" or "adapt an existing open-source solution."

The first client program ("entrant") to solve 500 decks will again win.

The server will run on a computer connected to the internet, exact
location to be announced.  Entrant teams will be responsible for their
own hardware and internet connection.

The "SWP2" protocol will be adjusted to deal exclusively in whole decks
whole solutions, and to model open-source product development under
licensing arrangements not encumbering development of derivative works.

Only the first letter of "discard" and "lay" instructions will be

The status, win, sync, close and dump commands will no longer be

New two card motion primitives 321, 320 and 210 will be available.

The six command sequences (31 21), (21 31), (30 20), (20 30), (20 10)
(10 20) will be replaced with the appropriate new two card motion
before commands are analyzed further, to prevent cetain trivial
from being used to create "unique derivative works" while still allowing
maximum compatability with the 1999 protocol.

Two new commands will be available, "get" and "solve".

get N

where N is a deck number, from 1 to 5000, not greater than one more
than the highest numbered deck that has been distributed to any entrant.

On receiving this command the server sends the complete 52 shuffled
of deck N to the requesting entrant in the order they will be dealt out,
separated by spaces, ended by a newline character.

solve N .....

where N is the number of the solved deck, and ..... is the solution

On receiving this command the server does these steps:
        removes non-commands and combines combinable sequences
        checks the solution for uniqueness
        checks the solution for accuracy in re: deck N

Good solutions the server has not seen before are (here's the
"open source" part) distributed to all antrants in this format:

fprintf(s,"%s completed lap %i by solving %i: %s\n",

Bad solutions produce an error message returned to the entrant only:

        Solution not unique
        Sequence error ...
        where ... is a dump of the game state of the deck being manipulated
        up to the point where an ERR message would have been returned in 1999

Any entrant may submit a solution for any deck, but an entrant who
has received a card deck in reply to a "get" command will not be
issued another card deck until they submit a valid unique solution for
the deck they have received.

The race will be run 7 May 2000, which is a Sunday.

The first entrant to "complete lap 500" will win the race, at this
time I believe that first prize (in true carnival style) is a large
plush Tux from Linuxmall.  This may change.

A working sample server loaded with fifty random decks will be up
or provided as a portable perl5 program soon.

Also a working but suboptimal client will be made available for