Computer Chess Club Archives




Subject: Re: 0x88

Author: Bruce Moreland

Date: 10:36:43 01/12/99

Go up one level in this thread

On January 12, 1999 at 05:30:00, Louis Verhaard wrote:

>I understand the advantage of 0x88 now. You can very efficiently
>represent properties that are only dependent on the relative position
>of two or more squares, like the ones in the given examples.

You could get this advantage using any move generation system that let you
calculate board indexes as if you were using a 16 x 8 board.  It's not the 0x88
part that lets you do this, it's the 16 x 8 board.

>For properties that depend on the absolute position on the board (like
>storing 3-piece endgame data bases) 0x88 would be useless, but
>then you just switch to another data representation.

To do endgame databases you assign each position a unique number that you can
use to index into a database. It's possible that some board/generation
mechanisms could give you some help, but it probably makes more sense to just
calculate the thing from scratch, which makes it independent of board

>On the other hand, 4096 bytes (or even 52K) may be a lot more than
>256 bytes, but on a modern PC this is all peanuts, so I'll keep my
>program as it is...

A benefit early on was the space, this is not so important anymore, but the
speed, ease of implementation, and ease of debugging still seem to be good
arguments to me.

The 0x88 part of it lets you avoid having complicated loop logic or a row (or
two) of sentinels around the board (the extra 64 board elements in the 16 x 8
system are used for nothing, they just sit there taking up space, so they aren't

The square-relation part of this is also efficient, simple, and useful.

I posted some sample code elsewhere in this thread.


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.