Author: Tom Kerrigan
Date: 20:51:10 04/25/00
Go up one level in this thread
On April 25, 2000 at 23:47:48, Tom Kerrigan wrote:
>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
Oh, by the way, I make sure the kings are in position 0 in the lists. That way I
can find them quickly.
-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.