https://www.chessprogramming.org/index.php?title=10x12_Board&feed=atom&action=history
10x12 Board - Revision history
2024-03-29T01:55:24Z
Revision history for this page on the wiki
MediaWiki 1.30.1
https://www.chessprogramming.org/index.php?title=10x12_Board&diff=5913&oldid=prev
GerdIsenberg at 19:42, 14 August 2018
2018-08-14T19:42:09Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 19:42, 14 August 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l162" >Line 162:</td>
<td colspan="2" class="diff-lineno">Line 162:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://en.wikipedia.org/wiki/Board_representation_%28chess%29#Array_based Board representation (chess) - Array based from Wikipedia]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://en.wikipedia.org/wiki/Board_representation_%28chess%29#Array_based Board representation (chess) - Array based from Wikipedia]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [[<del class="diffchange diffchange-inline">Videos#</del>If|If]] - [https://en.wikipedia.org/wiki/If_%28If_album%29 I'm Reaching Out on All Sides], 1970, [https://en.wikipedia.org/wiki/YouTube YouTube] Video</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [[<ins class="diffchange diffchange-inline">:Category:</ins>If|If]] - [https://en.wikipedia.org/wiki/If_%28If_album%29 I'm Reaching Out on All Sides], 1970, [https://en.wikipedia.org/wiki/YouTube YouTube] Video</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>: {{#evu:https://www.youtube.com/watch?v=jGTENfxd8M4|alignment=left|valignment=top}}</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>: {{#evu:https://www.youtube.com/watch?v=jGTENfxd8M4|alignment=left|valignment=top}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l169" >Line 169:</td>
<td colspan="2" class="diff-lineno">Line 169:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''[[Mailbox|Up one Level]]'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''[[Mailbox|Up one Level]]'''</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category:If]]</ins></div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=10x12_Board&diff=2736&oldid=prev
GerdIsenberg at 14:25, 25 May 2018
2018-05-25T14:25:32Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 14:25, 25 May 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4" >Line 4:</td>
<td colspan="2" class="diff-lineno">Line 4:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=Programs=</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=Programs=</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">==COKO III==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Figure 2 from ''COKO III: The Cooper-Koz Chess Program'' (1973) explains [[Coko|COKO's]] Chess environment <ref>[[Ed Kozdrowicki|Edward W. Kozdrowicki]], [[Dennis Cooper|Dennis W. Cooper]] ('''1973'''). ''[https://www.semanticscholar.org/paper/COKO-III%3A-The-Cooper-Koz-Chess-Program-Kozdrowicki-Cooper/8ca0c0f08ba564883b96f6126e2c0c3745fe31e7 COKO III: The Cooper-Koz Chess Program]''. [[ACM#Communications|Communications of the ACM]], Vol. 16, 7, Fig. 2</ref>:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[FILE:CokoIII10x12Board.jpg|none|border|text-bottom|link=https://www.semanticscholar.org/paper/COKO-III%3A-The-Cooper-Koz-Chess-Program-Kozdrowicki-Cooper/8ca0c0f08ba564883b96f6126e2c0c3745fe31e7/figure/1]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Board Representation|Chess environment representation]]: minimal game board. (a) The chessboard represented by a [[Array|linear array]].<br/></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">(b) Representation of [[Pieces|pieces]], empty [[Squares|squares]] and border squares. (c) Move [[Direction|directions]] for [[King]] and [[Queen]].<br/></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">(d) The [[Knight]] dictates that two rows of border squares surround the [[8x8 Board|8 X 8 game board]].<br/></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Columns 10 and 1 are considered adjacent.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Sargon==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Sargon==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>In 1978, [[Sargon]] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]] used a classical 120 [[Byte]] array as board <ref>[[Dan Spracklen]], [[Kathe Spracklen]] ('''1978'''). ''First Steps in Computer Chess Programming''. [[Byte Magazine#BYTE310|BYTE, Vol. 3, No. 10]], [http://archive.computerhistory.org/projects/chess/related_materials/text/4-4.First_Steps.Byte_Magazine/First_Steps_in_Computer_Chess_Programing.Spracklen-Dan_Kathe.Byte_Magazine.Oct-1978.062303035.sm.pdf pdf] from [[The Computer History Museum]]</ref> <ref>[http://www.andreadrian.de/schach/sargon.asm Sargon Z80 assembly listing] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]], hosted by [[Andre Adrian]]</ref>:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>In 1978, [[Sargon]] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]] used a classical 120 [[Byte]] array as board <ref>[[Dan Spracklen]], [[Kathe Spracklen]] ('''1978'''). ''First Steps in Computer Chess Programming''. [[Byte Magazine#BYTE310|BYTE, Vol. 3, No. 10]], [http://archive.computerhistory.org/projects/chess/related_materials/text/4-4.First_Steps.Byte_Magazine/First_Steps_in_Computer_Chess_Programing.Spracklen-Dan_Kathe.Byte_Magazine.Oct-1978.062303035.sm.pdf pdf] from [[The Computer History Museum]]</ref> <ref>[http://www.andreadrian.de/schach/sargon.asm Sargon Z80 assembly listing] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]], hosted by [[Andre Adrian]]</ref>:</div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=10x12_Board&diff=248&oldid=prev
GerdIsenberg at 09:35, 14 April 2018
2018-04-14T09:35:00Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 09:35, 14 April 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l7" >Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>In 1978, [[Sargon]] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]] used a classical 120 [[Byte]] array as board <ref>[[Dan Spracklen]], [[Kathe Spracklen]] ('''1978'''). ''First Steps in Computer Chess Programming''. [[Byte Magazine#BYTE310|BYTE, Vol. 3, No. 10]], [http://archive.computerhistory.org/projects/chess/related_materials/text/4-4.First_Steps.Byte_Magazine/First_Steps_in_Computer_Chess_Programing.Spracklen-Dan_Kathe.Byte_Magazine.Oct-1978.062303035.sm.pdf pdf] from [[The Computer History Museum]]</ref> <ref>[http://www.andreadrian.de/schach/sargon.asm Sargon Z80 assembly listing] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]], hosted by [[Andre Adrian]]</ref>:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>In 1978, [[Sargon]] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]] used a classical 120 [[Byte]] array as board <ref>[[Dan Spracklen]], [[Kathe Spracklen]] ('''1978'''). ''First Steps in Computer Chess Programming''. [[Byte Magazine#BYTE310|BYTE, Vol. 3, No. 10]], [http://archive.computerhistory.org/projects/chess/related_materials/text/4-4.First_Steps.Byte_Magazine/First_Steps_in_Computer_Chess_Programing.Spracklen-Dan_Kathe.Byte_Magazine.Oct-1978.062303035.sm.pdf pdf] from [[The Computer History Museum]]</ref> <ref>[http://www.andreadrian.de/schach/sargon.asm Sargon Z80 assembly listing] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]], hosted by [[Andre Adrian]]</ref>:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>; <del class="diffchange diffchange-inline">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''</del>*</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>; <ins class="diffchange diffchange-inline">******************************************************</ins>*</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; BOARD -- Board Array. Used to hold the current position  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; BOARD -- Board Array. Used to hold the current position  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; of the board during play. The board itself</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; of the board during play. The board itself</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l44" >Line 44:</td>
<td colspan="2" class="diff-lineno">Line 44:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; 7 -- Not used</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; 7 -- Not used</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; 0 -- Empty Square</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>; 0 -- Empty Square</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>; <del class="diffchange diffchange-inline">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''</del>*</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>; <ins class="diffchange diffchange-inline">******************************************************</ins>*</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>BOARD = .-TBASE  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>BOARD = .-TBASE  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>BOARDA: .BLKB 120</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>BOARDA: .BLKB 120</div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=10x12_Board&diff=247&oldid=prev
GerdIsenberg at 09:26, 14 April 2018
2018-04-14T09:26:12Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 09:26, 14 April 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l154" >Line 154:</td>
<td colspan="2" class="diff-lineno">Line 154:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://en.wikipedia.org/wiki/Board_representation_%28chess%29#Array_based Board representation (chess) - Array based from Wikipedia]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://en.wikipedia.org/wiki/Board_representation_%28chess%29#Array_based Board representation (chess) - Array based from Wikipedia]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [[Videos#If|If]] - <del class="diffchange diffchange-inline">[</del>[https://en.wikipedia.org/wiki/If_%28If_album%29 I'm Reaching Out on All Sides], 1970, [https://en.wikipedia.org/wiki/YouTube YouTube] Video</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [[Videos#If|If]] - [https://en.wikipedia.org/wiki/If_%28If_album%29 I'm Reaching Out on All Sides], 1970, [https://en.wikipedia.org/wiki/YouTube YouTube] Video</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>: {{#evu:https://www.youtube.com/watch?v=jGTENfxd8M4|alignment=left|valignment=top}}</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>: {{#evu:https://www.youtube.com/watch?v=jGTENfxd8M4|alignment=left|valignment=top}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=10x12_Board&diff=246&oldid=prev
GerdIsenberg: Created page with "'''Home * Board Representation * Mailbox * 10x12 Board''' The '''10x12 Board''' embeds the 8x8 board array, surrounded by [https..."
2018-04-14T09:24:16Z
<p>Created page with "'''<a href="/Main_Page" title="Main Page">Home</a> * <a href="/Board_Representation" title="Board Representation">Board Representation</a> * <a href="/Mailbox" title="Mailbox">Mailbox</a> * 10x12 Board''' The '''10x12 Board''' embeds the <a href="/8x8_Board" title="8x8 Board">8x8 board</a> <a href="/Array" title="Array">array</a>, surrounded by [https..."</p>
<p><b>New page</b></p><div>'''[[Main Page|Home]] * [[Board Representation]] * [[Mailbox]] * 10x12 Board'''<br />
<br />
The '''10x12 Board''' embeds the [[8x8 Board|8x8 board]] [[Array|array]], surrounded by [https://en.wikipedia.org/wiki/Sentinel_value sentinel] [[Files|files]] and [[Ranks|ranks]] to recognize off the board indices while [[Move Generation|generating moves]] using offsets per [[Pieces|piece]] and [[Direction|direction]] to determine [[Target Square|move target squares]]. Two ranks at the bottom and top are necessary to ensure even knight jumps from the corners result in valid array indices greater or equal zero and less than 120. <br />
<br />
=Programs=<br />
==Sargon==<br />
In 1978, [[Sargon]] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]] used a classical 120 [[Byte]] array as board <ref>[[Dan Spracklen]], [[Kathe Spracklen]] ('''1978'''). ''First Steps in Computer Chess Programming''. [[Byte Magazine#BYTE310|BYTE, Vol. 3, No. 10]], [http://archive.computerhistory.org/projects/chess/related_materials/text/4-4.First_Steps.Byte_Magazine/First_Steps_in_Computer_Chess_Programing.Spracklen-Dan_Kathe.Byte_Magazine.Oct-1978.062303035.sm.pdf pdf] from [[The Computer History Museum]]</ref> <ref>[http://www.andreadrian.de/schach/sargon.asm Sargon Z80 assembly listing] by [[Dan Spracklen|Dan]] and [[Kathe Spracklen]], hosted by [[Andre Adrian]]</ref>:<br />
<pre><br />
; '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*<br />
; BOARD -- Board Array. Used to hold the current position <br />
; of the board during play. The board itself<br />
; looks like: <br />
; FFFFFFFFFFFFFFFFFFFF <br />
; FFFFFFFFFFFFFFFFFFFF <br />
; FF0402030506030204FF <br />
; FF0101010101010101FF <br />
; FF0000000000000000FF <br />
; FF0000000000000000FF <br />
; FF0000000000000060FF <br />
; FF0000000000000000FF <br />
; FF8181818181818181FF <br />
; FF8482838586838284FF <br />
; FFFFFFFFFFFFFFFFFFFF <br />
; FFFFFFFFFFFFFFFFFFFF <br />
; The values of FF form the border of the <br />
; board, and are used to indicate when a piece <br />
; moves off the board. The individual bits of <br />
; the other bytes in the board array are as<br />
; follows:<br />
; Bit 7 -- Color of the piece<br />
; 1 -- Black <br />
; 0 -- White <br />
; Bit 6 -- Not used <br />
; Bit 5 -- Not used <br />
; Bit 4 --Castle flag for Kings only<br />
; Bit 3 -- Piece has moved flag<br />
; Bits 2-0 Piece type <br />
; 1 -- Pawn <br />
; 2 -- Knight<br />
; 3 -- Bishop <br />
; 4 -- Rook <br />
; 5 -- Queen <br />
; 6 -- King<br />
; 7 -- Not used<br />
; 0 -- Empty Square<br />
; '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*<br />
BOARD = .-TBASE <br />
BOARDA: .BLKB 120<br />
</pre><br />
<br />
==TSCP== <br />
A textbook example of mailbox board representation is [[TSCP]]. The board are two 64 element arrays, containing empty square plus [[Pieces#PieceTypeCoding|pure piece code]], and empty square plus piece color code <ref>[https://jim.sh/svn/jim/vendor/microwindows/current/src/demos/tuxchess/data.c TSCP - data.c]</ref>:. <br />
<pre><br />
int color[64]; /* LIGHT, DARK, or EMPTY */<br />
int piece[64]; /* PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, or EMPTY */<br />
</pre><br />
<br />
===Square Mapping===<br />
The 10x12 versus 8x8 and vice versa square mapping is applied by mailbox and mailbox64 lookup tables. A comment by [[Tom Kerrigan]] describes the implementation as follows <ref>[https://jim.sh/svn/jim/vendor/microwindows/current/src/demos/tuxchess/data.c TSCP - data.c]</ref>. However, 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 [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> :<br />
<pre><br />
/* Now we have the mailbox array, so called because it looks like a<br />
mailbox, at least according to Bob Hyatt. This is useful when we<br />
need to figure out what pieces can go where. Let's say we have a<br />
rook on square a4 (32) and we want to know if it can move one<br />
square to the left. We subtract 1, and we get 31 (h5). The rook<br />
obviously can't move to h5, but we don't know that without doing<br />
a lot of annoying work. Sooooo, what we do is figure out a4's<br />
mailbox number, which is 61. Then we subtract 1 from 61 (60) and<br />
see what mailbox[60] is. In this case, it's -1, so it's out of<br />
bounds and we can forget it. You can see how mailbox[] is used<br />
in attack() in board.c. */<br />
<br />
int mailbox[120] = {<br />
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,<br />
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,<br />
-1, 0, 1, 2, 3, 4, 5, 6, 7, -1,<br />
-1, 8, 9, 10, 11, 12, 13, 14, 15, -1,<br />
-1, 16, 17, 18, 19, 20, 21, 22, 23, -1,<br />
-1, 24, 25, 26, 27, 28, 29, 30, 31, -1,<br />
-1, 32, 33, 34, 35, 36, 37, 38, 39, -1,<br />
-1, 40, 41, 42, 43, 44, 45, 46, 47, -1,<br />
-1, 48, 49, 50, 51, 52, 53, 54, 55, -1,<br />
-1, 56, 57, 58, 59, 60, 61, 62, 63, -1,<br />
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,<br />
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1<br />
};<br />
<br />
int mailbox64[64] = {<br />
21, 22, 23, 24, 25, 26, 27, 28,<br />
31, 32, 33, 34, 35, 36, 37, 38,<br />
41, 42, 43, 44, 45, 46, 47, 48,<br />
51, 52, 53, 54, 55, 56, 57, 58,<br />
61, 62, 63, 64, 65, 66, 67, 68,<br />
71, 72, 73, 74, 75, 76, 77, 78,<br />
81, 82, 83, 84, 85, 86, 87, 88,<br />
91, 92, 93, 94, 95, 96, 97, 98<br />
};<br />
</pre><br />
<br />
===<span id="OffsetMG"></span>Offset Move Generation===<br />
In the offset [[Move Generation|move generation]] code, testing if a square is on the board looks as follows <ref>[https://jim.sh/svn/jim/vendor/microwindows/current/src/demos/tuxchess/data.c TSCP - data.c]</ref> <ref>[https://jim.sh/svn/jim/vendor/microwindows/current/src/demos/tuxchess/board.c TSCP - board.c], slightly modified</ref>:<br />
<br />
<pre><br />
int side; /* the side to move */<br />
int xside; /* the side not to move */<br />
<br />
BOOL slide[6] = {FALSE, FALSE, TRUE, TRUE, TRUE, FALSE};<br />
int offsets[6] = {0, 8, 4, 4, 8, 8}; /* knight or ray directions */<br />
int offset[6][8] = {<br />
{ 0, 0, 0, 0, 0, 0, 0, 0 },<br />
{ -21, -19,-12, -8, 8, 12, 19, 21 }, /* KNIGHT */<br />
{ -11, -9, 9, 11, 0, 0, 0, 0 }, /* BISHOP */<br />
{ -10, -1, 1, 10, 0, 0, 0, 0 }, /* ROOK */<br />
{ -11, -10, -9, -1, 1, 9, 10, 11 }, /* QUEEN */<br />
{ -11, -10, -9, -1, 1, 9, 10, 11 } /* KING */<br />
};<br />
<br />
for (i = 0; i < 64; ++i) { /* loop over all squares (no piece list) */<br />
if (color[i] == side) { /* looking for own pieces and pawns to move */<br />
p = piece[i]; /* found one */<br />
if (p != PAWN) { /* piece or pawn */<br />
for (j = 0; j < offsets[p]; ++j) { /* for all knight or ray directions */<br />
for (n = i;;) { /* starting with from square */<br />
n = mailbox[mailbox64[n] + offset[p][j]]; /* next square along the ray j */<br />
if (n == -1) break; /* outside board */<br />
if (color[n] != EMPTY) {<br />
if (color[n] == xside)<br />
genMove(i, n, 1); /* capture from i to n */<br />
break;<br />
}<br />
genMove(i, n, 0); /* quiet move from i to n */<br />
if (!slide[p]) break; /* next direction */<br />
}<br />
}<br />
} else { /* pawn moves */ }<br />
}<br />
}<br />
</pre><br />
<br />
=See also= <br />
* [[Minimax (program)#Mailbox|Mailbox in Minimax]]<br />
<br />
=Publications= <br />
* [[Dan Spracklen]], [[Kathe Spracklen]] ('''1978'''). ''First Steps in Computer Chess Programming''. [[Byte Magazine#BYTE310|BYTE, Vol. 3, No. 10]], [http://archive.computerhistory.org/projects/chess/related_materials/text/4-4.First_Steps.Byte_Magazine/First_Steps_in_Computer_Chess_Programing.Spracklen-Dan_Kathe.Byte_Magazine.Oct-1978.062303035.sm.pdf pdf] from [[The Computer History Museum]]<br />
* [[David Levy]] ('''1979'''). ''Computer and Chess - How the monster thinks''. [https://en.wikipedia.org/wiki/Elektor Elektor], January 1979 <ref>[http://www.chesscomputeruk.com/html/publication_archive.html Publication Archive] from [http://www.chesscomputeruk.com/index.html Chess Computer UK] by [[Mike Watters]]</ref><br />
* [[Robert Hyatt]] ('''1981'''). ''[http://www.computerhistory.org/chess/full_record.php?iid=doc-431614f6d2f73 Checkmate: The Cray-1 Plays Chess. Part 1]''. [http://www.0x07bell.net/WWWMASTER/CrayWWWStuff/Cfaqccframeset.html Cray Channels], Vol. 3, No. 1. [http://archive.computerhistory.org/projects/chess/related_materials/text/3-2%20and%203-3.Cray_Channels_Vol-3_No-1.Checkmate_The_Cray-1_Plays_Chess.Hyatt.1980/Cray_Channels_Vol-3_No-1.Checkmate_The_Cray-1_Plays_Chess.Hyatt.1980.062303023.sm.pdf pdf] from [[The Computer History Museum]]<br />
<br />
=Forum Posts=<br />
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=4442 Board representation : 0x88 or 10x12 ?] by Philippe, [[Computer Chess Forums|Winboard Forum]], March 02, 2006 » [[0x88]]<br />
* [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<br />
* [http://www.talkchess.com/forum/viewtopic.php?t=48164 mailbox & CPW] by [[Harm Geert Muller]], [[CCC]], May 31, 2013<br />
<br />
=External Links=<br />
* [https://en.wikipedia.org/wiki/Board_representation_%28chess%29#Array_based Board representation (chess) - Array based from Wikipedia]<br />
* [http://www.craftychess.com/hyatt/boardrep.html Chess board representations] by [[Robert Hyatt]]<br />
* [[Videos#If|If]] - [[https://en.wikipedia.org/wiki/If_%28If_album%29 I'm Reaching Out on All Sides], 1970, [https://en.wikipedia.org/wiki/YouTube YouTube] Video<br />
: {{#evu:https://www.youtube.com/watch?v=jGTENfxd8M4|alignment=left|valignment=top}}<br />
<br />
=References= <br />
<references /><br />
<br />
'''[[Mailbox|Up one Level]]'''</div>
GerdIsenberg