Author: William Bryant
Date: 14:37:27 04/05/00
Go up one level in this thread
On April 05, 2000 at 15:16:41, Dann Corbit wrote: >On April 05, 2000 at 14:30:14, Pete Galati wrote: > >>On April 05, 2000 at 14:08:01, Dann Corbit wrote: >> >>>It might be funny to write the smallest possible chess program that produces >>>legal moves for both sides. If it plays against itself, it could have no I/O >>>except to display the chosen moves. It could more or less choose legal moves at >>>random. Basically, it could be nothing but a board representation, a move >>>generator, and calls to rand(). >>> >>>Can it be done in (for instance) ten lines of C? >> >>How would you decide the random move to make? Wait a minute, that didn't make >>sense. Since you're not really talking about selecting a move based on a >>search, you'd have to generate a list of all the legal moves for each position, >>feed them to your random function as variables, and it would make it's random >>selection from those. >> >>It would play a bad game of Chess. I doubt if you could get by on 10 lines. > >Just take the list of legal moves. Suppose that there are N of them, then your >choice is: >(int)((double)rand() / ((double)RAND_MAX + 1) * N) > >The game is over when no legal moves exist (draw) or checkmate. > >And the source lines... >A logical line of C can have over 500 characters in C89 and 4095 characters in a >logical source line for C9X. >;-) Simplify all variables to 1 letter, no spacing, etc. You could compress a chess program to several hard to read, very long lines. ____But____ hasn't that been done. Wouldn't it be more interesting to express a simple chess program that plays real chess in as small a file as possible without a line limit to at least make it readable? William
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.