Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How important are Bitboards?

Author: Russell Reagan

Date: 12:46:00 02/29/04

Go up one level in this thread


On February 29, 2004 at 14:44:54, Martin Schreiber wrote:

>1.)
>is using bitboards a necessary condition to write a strong chess engine?

No. Bitboards are just one way to represent a chess board, and bitboards allow
you to do some clever tricks. Basically, bitboards give you a set of tools to
work with as a programmer. There are other methods that let you do other clever
tricks that give you different tools to use. None of these tool sets are
necessarily any better than the others. All that matters is that you make use of
the right tools for the job. A strong program can be written in just about any
board representation.

>And if
>not so, what other good/fast solution we have for the board representation?

Array based. Probably some 0x88 variant.

>2.)
>And are there strong freeware or commercial chess engines, which don't use
>bitboards?

Of course. Chess Tiger and Yace are examples of strong programs that don't use
bitboards.

>And what kind of board representation they use?

Probably some 0x88 variant. If you want to learn about board representations...

Read this first:
http://www.cis.uab.edu/info/faculty/hyatt/boardrep.html

Then read this:
http://www.brucemo.com/compchess/programming/0x88.htm

Then read this:
http://chessprogramming.org/cccsearch/ccc.php?art_id=114377

The first article will give you an overview of different board representations.
The second article will explain 0x88 in more detail and its advantages. The
third will explain an improvement over 0x88.

The first article was written by Dr. Hyatt, author of Crafty, former winner of
the computer chess world championship. The second article was written by Bruce
Moreland, who tied for first in the computer chess world championship. The last
is written by Christophe Theron, author of Chess Tiger, which has topped the
SSDF list in the past. All three of these guys know what they're talking about,
and all three have written very strong programs using very different approaches.
Dr. Hyatt uses bitboards. Bruce Moreland uses a move table. Christophe Theron
uses the 0x88 impovement he wrote about.

I kind of agree with Bruce though, who said this in response to a similar
question about what the "best" board representation is:

"I don't think it matters what you do, and starting out with intent to save a
few cycles is like being extremely concerned about making sure that the first
step you take on the way to work each morning is absolutely perfect."

If you walk halfway to your car, then have to turn around because you realize
you forgot your keys, that doesn't mean you're going to have a bad day. Nor does
choosing one board representation mean that you aren't going to have a bad
program.

Bruce also gives this good advice, in regards to how a beginner should write go
about writing a chess program:

"Make a program by hook or crook, and get it playing chess automatically on a
server, preferably ICC. Do this as quickly as possible. Either throw it away and
start over, or fix it. Having gained practical experience will help immensely."

I couldn't agree more. Until you've written a program once, you really don't
know enough to choose the board representation that is right for you.



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.