Author: Vincent Diepeveen
Date: 05:56:24 12/17/02
Go up one level in this thread
On December 17, 2002 at 04:15:26, JW de Kort wrote: I do not understand why you want to change it to something slower. 0x88 is fine. also fine is the gnuchess 4.0 datastructure int piecelist[2][18]; // containing squares of the pieces int piececnt[2]; // number of pieces minus king as you have that one anyway and at the end of the squares where the pieces are, you put a -1 or whatever that speeds up the loop a lot. int board[64]; // 0..6 empty,pawn,knight,bishop,rook,queen,king int color[64]; // 0,1,2=neutral int quickboard[64]; // 0..12 same as board also bpawn,bknight,bbishop,brook ... int pindex[64]; // two times 0..15 giving index in piecelist this very simple datastructure allows manipulations to be done very quick. For example if you move from a1 to a2, then all you gotta do is index = pindex[a2] = pindex[a1]; board[a2] = board[a1]; board[a1] = 0; quickboard[a2] = quickboard[a1]; quickboard[a1] = 0; piecelist[side][index] = a2; You can do that tens of millions of times a second. >Hi, > >Currently i'am using a piecelist to keep track of the locations of the pieces in >my 0x88 based program. Iám thinking about removing this list and replacing it by >a bitboard to keep track of the piecelocations of white pieces and black pieces. >I'am wondering of anybody else does this (i think some one will) and if this is >a good improvement to spees up my engine which is terrably slow. I have good >expierences with other bitboards in my program. I already use bitboard to do the >pawn evaluations and i'am thinkin about gradually removing the 0x88 stuff to >replace it with bitboards > >any help appreciated > > >Regards > >Jan Willem
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.