Author: Inmann Werner
Date: 04:30:51 04/17/98
Piece table question Can anybody help me? When generating moves in my chess programm, until now I search the whole boad for pieces. I want to speed this up and use a figure list like this: Typedef struct{ Char where /*Position on Table*/ Char what /*which piece (0=nothing;1=pawn ...*/ }TYPFIGLI; TYPFIGLI FIGLI[2][16]; (FIGLI[0].. is white, FIGLI[1].. is black) Char FIGBR[125(A board table with a 'pointer' to FIGLI (10*12 board)) In the move Generator and the evaluation function, everything works fine. In the routine 'DO_MOVE' it is a little bit tricky, but it works. FIGLI[color][FIGBR[from]].where=tomove FIGBR[tomove]=FIGBR[from] FIGBR[from]=-1 But in the routine 'UNDO_MOVE' i have a problem, when I put back a captured piece. There are two possibilities. 1) search the structure FIGLI for an empty field and use it. 2) Increase the number of pieces in FIGLI and store the piece in the last one If I use 1), I possibly have to search up to 16 times to find an emty location. If I use 2), I have to increase the structure of FIGLI and more and more 'pieces' are in it. In 'Generate moves' everything slows down. (maybe I get even an overflow). Which possibility is better?(I think the first one) Does anybody know anything much better and faster!!!. Thank you very much, INMANN WERNER PS: I am from Germany, and my English is rather poor. Excuse me!!
This page took 0.01 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.