Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Fastest Conversion from 0x88 board to 8x8 board representation

Author: Robert Hyatt

Date: 20:05:24 07/06/01

Go up one level in this thread


On July 06, 2001 at 14:37:14, Artem Pyatakov wrote:

>I would like to save some memory in things like the history table, but I am
>using the 0x88 board representation, and I would like to sometimes convert these
>coordinates to a normal 8x8 board (so I could have a 64x64 array instead of
>128x128 array)... What is the fastest way to do this conversion?
>
>Thanks


Two solutions come to mind.  First, an array of 128 entries, where the
contents of each element is its corresponding element in the 8x8 array.

the second is a bit more computation, but  eliminates the array.  I will
give you some simple code that can be written a bit faster.  But it is
easier to understand as I give it:

  file=x88square&7;          // this grabs the 3 bits for file number
  rank=(x88square>>1)&0x38;  // this grabs 3 bits for rank, but shifted
                             // right one bit so that it ends up in the
                             // right place.
  square8x8=rank+file;       // combine into a 6 bit number.  you will
                             // end up with values such that 0 <= N <= 63

Bob



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.