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.