Author: Russell Reagan
Date: 15:22:04 09/29/02
Go up one level in this thread
On September 29, 2002 at 18:09:02, Arshad Syed wrote: >Would bitboards be the best way in which to represent piece positions or would >this be inefficient since the current Pentiums use 32 bit architecture. Also, >which would be the best alternate way, if not bitboard currently? > > >Thanks in advance, >Arshad This is a question that is too complex to answer 100% correctly. There are so many ways you can represent a game of chess on a computer, and almost all of them have their strong points and their weak points. The goal should be to take advantage of whatever data structure you pick. I have a lot of ideas I want to try out in the evaluation function, so I chose bitboards because I think they allow a little more in terms of what I want to try. Aside from bitboards, the other popular method is 0x88, which you can read about at Bruce Moreland's webpage at http://www.seanet.com/~brucemo (I think that's right). It also has some nice tricks you can take advantage of. I've also heard that there are some similar tricks you can do with a 16x16 board, but I don't know what they are off hand. Basically, there are a lot of different ways you can go about it, and they all have their good points and their bad points. I personally like bitboards, not because I think they are faster but because I think they will allow me to do some extra things (or try them at least) in static evaluation. On a 32-bit machine you suffer a little bit of a penalty for using bitboards though, and Bob Hyatt says that bitboards break even with other methods of a 32-bit machine. I have learned (the hard way) that it's not really as important as people make it out to be which data structure you decide upon. Move generation and make/unmake will not be the most significant part of your program. Things like forward pruning and the efficiency of how you evaluate your positions will be much more important. I would suggest whatever data representation that allows you to do those things most efficiently. So my advice is to just pick whichever you understand the best, or whichever you think is the most straightforward, or if you have some special ideas about new forward pruning or evaluation techniques, choose a data structure that makes testing those out easy. Another thing I like about bitboards is that eventually 64-bit machines will be reasonably priced, and bitboard engines will get a free bonus for no extra work on the part of the programmer. Engines that use other methods will not. If I was starting from scratch I would go with bitboards for sure, because eventually it's going to pay some nice dividends. Russell
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.