Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How do you represent chess boards in your chess programms

Author: Frederic Louguet

Date: 00:30:36 09/25/99

Go up one level in this thread


On September 24, 1999 at 19:06:53, Christophe Theron wrote:

>Bitboards give no real advantage, except that the author feels very proud of
>itself when it works (and he thinks it's so elegant!).
>
>There are simpler data structures that work very well for chess, are very easy
>to understand and program, and work on any computer, not just expensive 64 bits
>processors.

Hello Christophe,
I am proud when it works. It IS so elegant :)

Seriously, in my opinion, there is no unique "way to go". I think that choosing
a data structure must be related to the philosophy of the program you create. I
believe that in the case of Chess Tiger, the goal is to concentrate on
efficiency of search and on a relatively low set of important evaluation
parameters. This approach which seem to work very well against computers (search
is the most important thing) is not necessarily as useful against very strong
humans players at longer time controls. Because in that case, knowledge is the
most important thing. Particularly knowledge which is difficult to program, but
that GMs have in "enormous" quantities, and for free. Damn GMs.

My point is, I chose bitboards for chess Wizard because I am focused on
evaluation, not because I wait for 64 bit processors. When they come and are
cheap, fine. But for the moment, I am very happy with my "evaluation explorer",
because it let me try complex ideas without a huge penalty on performance. And
when you are used to think in bitboards with ORs and ANDs, you have trouble
getting back. 64 bits, 64 squares. It is so natural.

That being said, I would not recommend to write a very first chess program with
bitboards. It is much more efficient to use a simpler data struture (0x88,
mailbox) and to have a working program in a matter of days. In fact, the very
first version of what would become Chess Wizard was written in PowerBasic in
1995, and it used 0x88. And you know what ? The new PowerBasic Console Compiler
2.0 I recently bought is so powerful and simple, I think I'm going to switch
from C to this language in the near future (yes, it uses 64 bit Quad integers,
and yes, it is *VERY* fast). I believe a very strong checkers program (Wyllie
from Roberto Waldteufel) recently had excellent results against the checkers
world champion, and it is written in PowerBasic.




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.