Changes

Jump to: navigation, search

Mailbox

1,041 bytes added, 12:00, 13 June 2021
no edit summary
'''Mailbox''', (Offset board representation <ref>[http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]</ref>)
a square-centric board representation where the [[Pieces#PieceCoding|encoding]] of every [[Squares|square]] resides in a separately addressable [[Memory|memory]] element, usually an element of an [[Array|array]] for random access. The square number, or its [[Files|file]] and [[Ranks|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|10x12 board]], but various implementations are all mailbox, independently from elements in the array for padding that can act as a [https://en.wikipedia.org/wiki/Sentinel_value sentinel value] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=48164 mailbox & CPW] by [[Harm Geert Muller]], [[CCC]], May 31, 2013</ref>.
 
=Implementations=
* [[8x8 Board]]
* [[10x12 Board]]
* [[Vector Attacks]]
: [[0x88]]
=Pros & cons=
==Cons==
In the view of developing chess engines:
* Programming must use many loop and branch commands such as for, while, if (compare with [[BitboardBitboards]])
* Hard to store patterns and match them
* May have some inefficient high-frequency-use functions such as finding King locations, in-check
* Not efficient to generate moves in stages since generating all moves, captures only, non-captures may take quite similar periods
=ImplementationsSpeed=* For basic tasks such as generating, making/unmaking moves, a "pure" mailbox maybe slower than [[8x8 BoardBitboards]]* . However, when combining it with other methods such as [[10x12 BoardPiece-Lists]]* and optimize the code it could be as fast as Bitboards<ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=76773#p885878 The mailbox trials] by [[Vector AttacksPham Hong Nguyen|Nguyen Pham]]: , [[0x88CCC]], Mar 04, 2021</ref>
=See also=
* [http://www.talkchess.com/forum/viewtopic.php?t=23191 move generation with one dimensional "12 x 10" array] by [[Andrew Short]], [[CCC]], August 22, 2008
* [http://www.talkchess.com/forum/viewtopic.php?t=48164 mailbox & CPW] by [[Harm Geert Muller]], [[CCC]], May 31, 2013
* [http://talkchess.com/forum3/viewtopic.php?f=7&t=76773 The mailbox trials] by [[Harm Geert Muller]], [[CCC]], March 04, 2021 <ref>[https://github.com/maksimKorzh/hgm-mailbox-trials/blob/main/mailbox7b.c hgm-mailbox-trials/mailbox7b.c at main · maksimKorzh/hgm-mailbox-trials · GitHub] hosted by [[Maksim Korzh]]</ref>
=External Links=
* [https://en.wikipedia.org/wiki/Board_representation_%28chess%29#Array_based Board representation (chess) - Array based from Wikipedia]
* [http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]* [https://github.com/maksimKorzh/hgm-mailbox-trials/blob/main/mailbox7b.c hgm-mailbox-trials/mailbox7b.c at main · maksimKorzh/hgm-mailbox-trials · GitHub] hosted by [[Maksim Korzh]] <ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=76773 The mailbox trials] by [[Harm Geert Muller]], [[CCC]], March 04, 2021</ref>
* [https://en.wikipedia.org/wiki/Mailbox Mailbox (disambiguation) from Wikipedia]

Navigation menu