Mailbox

Home * Board Representation * Mailbox



Mailbox, (Offset board representation ) a square-centric board representation where the encoding of every square resides in a separately addressable memory element, usually an element of an array for random access. The square number, or its file and rank, acts like an address to a post box, which might be empty or may contain one chess piece. As pointed out by Harm Geert Muller, not only the embedded 10x12 board, but various implementations are all mailbox, independently from elements in the array for padding that can act as a sentinel value.

=Pro & Const=

Pro

 * Easy, straightforward to understand and implement
 * Suitable with same efficiency for any size of board, from one can be fitted on 64-bit integers to much larger

Except for high level chess engines, mailbox is quite suitable for other chess software when computing speed is not hard requirements such as chess tools, chess GUI since it is much easier to develop and maintain. It is also easier to support multi chess variants which boards’ sizes are quite different.

Newcomers are suggested to implement their first chess engines using Mailbox thus they can get some basic knowledge and skills before starting more complicated chess projects.

Const

 * Programming must use many loop and branch commands such as for, while, if
 * Hard to store patterns and match them

=Implementations=
 * 8x8 Board
 * 10x12 Board
 * Vector Attacks
 * 0x88

=See also=
 * Array
 * Array of Nibbles
 * Mailbox in Minimax

=Publications=
 * Claude Shannon (1949). Programming a Computer for Playing Chess. pdf from The Computer History Museum
 * Dietrich Prinz (1952). Robot Chess. Research, Vol. 6, reprinted 1988 in Computer Chess Compendium
 * Alex Bell (1972). Games Playing with Computers. Allen & Unwin, ISBN-13: 978-0080212227
 * Dan Spracklen, Kathe Spracklen (1978). First Steps in Computer Chess Programming. BYTE, Vol. 3, No. 10, pdf from The Computer History Museum
 * David Levy (1979). Computer and Chess - How the monster thinks. Elektor, January 1979
 * Robert Hyatt (1981). Checkmate: The Cray-1 Plays Chess. Part 1. Cray Channels, Vol. 3, No. 1. pdf from The Computer History Museum

=Forum Posts=
 * Bitboards vs Mailbox vs 0X88 by Bruce Cleaver, CCC, June 02, 1998 » 0x88, Bitboards
 * 0x88 vs mailbox by Stuart Cracraft, CCC, September 16, 2004 » 0x88
 * Mailbox info by Anonymous, Winboard Forum, May 08, 2005
 * Board representation : 0x88 or 10x12 ? by Philippe, Winboard Forum, March 02, 2006 » 0x88
 * move generation with one dimensional "12 x 10" array by Andrew Short, CCC, August 22, 2008
 * mailbox & CPW by Harm Geert Muller, CCC, May 31, 2013

=External Links=
 * Board representation (chess) - Array based from Wikipedia
 * Chess board representations by Robert Hyatt
 * Mailbox (disambiguation) from Wikipedia

=References=

Up one Level