Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Move structure

Author: Tim Foden

Date: 02:35:20 02/21/04

Go up one level in this thread


On February 21, 2004 at 04:09:22, Mathieu Pagé wrote:

>Hi,
>
>This is my move structure:
>
>class CCoup{
>  char tcCoup;	 // type of move castling promotion (the piece)
>  unsigned char cPiecePrisePieceJoue; // type of the piece moved and on the
>                                      // piece taken if any.
>
>  int iFrom;			 // self explaning
>  int iTo;				 // ditto
>
>...
>};
>
>It is 10 bytes long. is it common to have a move struct that "big" ?
>
>from and to could be compress to one byte each, but i Think (i'm not sure) it
>would be less efficient since I often have to use them as a table index and a
>table index is always (on my target architecture) 4 bytes.
>
>Am I right ? What do you think of it ?
>
>Mathieu P.

In GLC I just use an unsigned 32bit integer.  I shift and mask to get:
 from square (6 bits)
 to square (6 bits)
 piece type (3 bits)
 special flag (1 bit, set for ep, castle, promote)
 promotion piece type (3 bits)
 taken piece type (3 bits)

Cheers, Tim.



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.