Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: FirstChess - a crazy project!

Author: Dann Corbit

Date: 11:29:48 07/24/02

Go up one level in this thread


On July 24, 2002 at 09:37:47, Pham Hong Nguyen wrote:
>[snip]
>>A very interesting and laudable project.  I think it is somewhat of a mistake to
>>assume that code which is more comprehensible to the author will be more
>>comprehensible to some other student reading it.
>
>Hi Dann. Thank you very much for your help and encouragement :)
>Your suggestions are very helpful. I took them and now I am improving source
>code (I will send you for getting further comments and checking).
>
>Here is just a hard point that I want to discuss more:
>
>>The minimum chess game can make e.p. captures and castle.  If you cannot do
>>that, you are playing some other game besides chess.  It's like writing a
>>checkers game where the checkers cannot turn into kings.  The primary rules of
>>the game should be included.
>>
>>Also, 50 move and 3x repeat are pretty basic and pretty important.  If your
>>program does not understand these rules, it will annoy people.
>
>I think hard about this point. I agree without EP, castle, 50 move rules and 3
>repetition rules the game is partly like chess. Unfortunately, they require too
>many technique details and may expand doubly the source code. I am also afraid
>that learners will lose the main way in the matrix of details. Some of those
>details will require extra explainations from experts or few days of studying
>(not my desire). BTW, there are so many existing and much better source codes
>which have implemented every rules of chess. Perhaps, it is better if we have a
>lower thing as other alternative for learners. There is a trade off here:
>cutting off difficult rules for simpleness.
>
>The philosophy of my program is to create an extremely simple source code, aim
>at illustrating only basic functions of a chess engine. It is not for playing
>(even learners can try few moves), but for short studying (few hours or a day)
>to get some ideas and confidence before going to a real chess source code.
>
>Annoyance may be a good thing for learners :) Yes, I try to not make everything
>ready. If a learner feels annoying because program lacks so many things, it
>probably means he thinks he understands everything and can do better without
>panic, then he may soon start writting his own engine or studying real ones. It
>is main purpose of my program.

Make castling a separate function.  Make e.p. captures a separate function.

If you have a move list with a hash for the board position and a one byte move
counter for the non-reversible moves, then the draws are very easy.

Use Bob Jenkin's hash if you don't want to make a fancy Zobrist one.  32 bits
should be plenty for a move list hash.

It shouldn't take more than 100 lines to accomplish everything.



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.