Author: Tom Kerrigan
Date: 20:47:48 04/25/00
Go up one level in this thread
On April 25, 2000 at 18:11:59, Dann Corbit wrote:
>On April 25, 2000 at 17:24:37, Tom Kerrigan wrote:
>
>>On April 25, 2000 at 17:15:24, Steve Maughan wrote:
>>
>>>Tom,
>>>
>>>>* Non-linked piece lists (I've discovered that linked lists are _bad_!)
>>>
>>>Hmmm - interesting. Please do expand! Surely you're not looping through all of
>>>the squares? Maybe a static array?
>>>
>>>Regards,
>>>
>>>Steve Maughan
>>
>>Right, I keep a static list of the pieces on the board.
>>
>>Linked lists are bad because they make life hard for the processor (for a number
>>of reasons) and the compiler can't do any clever optimization of them.
>
>Perhaps something along the lines of:
>enum piece_type {
> PAWN=0, KNIGHT, BISHOP, ROOK, QUEEN, KING
>};
>enum piece_color {
> WHITE=0, BLACK
>};
>typedef struct tag_piece_list {
> unsigned piece_count;
> unsigned location[9];
Looks similar to what I do, except for this. Why have 9 locations?
Here's what I do:
typedef struct {
BOOL dead; // captured
int c; // color
int t; // type
int sq; // square
int bit; // 1 << type
} pl_t; // piece list type
pl_t piece[2][16];
int pieces[2];
pl_t pawn[2][8];
int pawns[2];
pl_t *plp[128]; // piece list pointer
-Tom
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.