https://www.chessprogramming.org/index.php?title=Winglet&feed=atom&action=history
Winglet - Revision history
2024-03-29T14:56:13Z
Revision history for this page on the wiki
MediaWiki 1.30.1
https://www.chessprogramming.org/index.php?title=Winglet&diff=21067&oldid=prev
GerdIsenberg at 15:15, 31 August 2020
2020-08-31T15:15:15Z
<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 15:15, 31 August 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l82" >Line 82:</td>
<td colspan="2" class="diff-lineno">Line 82:</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>[[Category:GPL]]</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>[[Category:GPL]]</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>[[Category:WinBoard]]</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>[[Category:WinBoard]]</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:Didactic]]</ins></div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=Winglet&diff=9962&oldid=prev
GerdIsenberg at 12:56, 15 January 2019
2019-01-15T12:56:28Z
<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 12:56, 15 January 2019</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l69" >Line 69:</td>
<td colspan="2" class="diff-lineno">Line 69:</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>==Chess Engine==</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>==Chess Engine==</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://kirr.homeunix.org/chess/engines/Jim%20Ablett/WINGLET/ Index of /chess/engines/Jim Ablett/WINGLET] by [[Jim Ablett]], hosted by [[Kirill Kryukov]]</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://kirr.homeunix.org/chess/engines/Jim%20Ablett/WINGLET/ Index of /chess/engines/Jim Ablett/WINGLET] by [[Jim Ablett]], hosted by [[Kirill Kryukov]]</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 style="font-weight: bold; text-decoration: none;">* [https://github.com/PortugalTheMan/winglet/tree/master PortugalTheMan/winglet · GitHub] <ref>[http://schach.chess.com/forum/view/general/winglet-chess-engine-revived Winglet Chess Engine; Revived!] by [http://www.chess.com/members/view/PortugalTheMan PortugalTheMan], [https://en.wikipedia.org/wiki/Chess.com Chess.com], Septermber 24, 2014</ref></del></div></td><td colspan="2"> </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 style="font-weight: bold; text-decoration: none;">* [http://aghaznawi.comuf.com/computer%20chess/winglet/ winglet, writing a chess program in 99 steps] by [[Stef Luijten]], hosted by [[Abdullah Al-Ghaznawi]] <ref>copy was taken in March 07, 2013, images and archives included</ref></del></div></td><td colspan="2"> </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>==Tutorial Archive==</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>==Tutorial Archive==</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>{{Winglet to Include}}</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>{{Winglet to Include}}</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l77" >Line 77:</td>
<td colspan="2" class="diff-lineno">Line 75:</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://theflyingengineer.com/flightdeck/winglets-and-sharklets/ Winglets and Sharklets | The Flying Engineer]</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://theflyingengineer.com/flightdeck/winglets-and-sharklets/ Winglets and Sharklets | The Flying Engineer]</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.b737.org.uk/winglets.htm Boeing 737 Winglets]</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.b737.org.uk/winglets.htm Boeing 737 Winglets]</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 style="font-weight: bold; text-decoration: none;">* [http://www.airbus.com/innovation/proven-concepts/in-design/winglets/ Winglets | Airbus, a leading aircraft manufacturer]</del></div></td><td colspan="2"> </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>=References=  </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>=References=  </div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=Winglet&diff=9959&oldid=prev
GerdIsenberg: Created page with "'''Home * Engines * Winglet''' FILE:Winglet with attached tufts of an KC-135A.jpg|border|right|thumb| Winglet <ref>Winglet with attached [https://en.wikip..."
2019-01-15T12:41:12Z
<p>Created page with "'''<a href="/Main_Page" title="Main Page">Home</a> * <a href="/Engines" title="Engines">Engines</a> * Winglet''' FILE:Winglet with attached tufts of an KC-135A.jpg|border|right|thumb| Winglet <ref>Winglet with attached [https://en.wikip..."</p>
<p><b>New page</b></p><div>'''[[Main Page|Home]] * [[Engines]] * Winglet'''<br />
<br />
[[FILE:Winglet with attached tufts of an KC-135A.jpg|border|right|thumb| Winglet <ref>Winglet with attached [https://en.wikipedia.org/wiki/Tuft_%28aeronautics%29 tufts] of an [https://en.wikipedia.org/wiki/Boeing_KC-135_Stratotanker KC-135A] during [https://en.wikipedia.org/wiki/NASA NASA] Winglet stu dy 1979. The tufts are needed to measure the [https://en.wikipedia.org/wiki/Airflow airflow], [https://en.wikipedia.org/wiki/Wingtip_device#Winglet Winglet from Wingtip device - Wikipedia], [http://www.dfrc.nasa.gov/Gallery/Photo/KC-135/HTML/EC79-11481.html KC-135 EC79-11481: KC-135A in flight - closeup of winglet with attached tufts], August 20, 1979</ref> ]] <br />
<br />
'''Winglet''',<br/><br />
a didactic [[:Category:Open Source|open source chess engine]] by [[Stef Luijten]], written in [[Cpp|C++]] and licensed under the [[Free Software Foundation#GPL|GNU General Public License]]. <br />
The development of Winglet was documented on the website tutorial ''Winglet, Writing a Chess Program in 99 Steps'', started in 2011, now hosted by the [https://en.wikipedia.org/wiki/Wayback_Machine Wayback Machine] <ref>[http://web.archive.org/web/20120621100214/http://www.sluijten.com/winglet/ Winglet, Writing a Chess Program in 99 Steps] by [[Stef Luijten]], hosted by the [https://en.wikipedia.org/wiki/Wayback_Machine Wayback Machine]</ref>. <br />
Winglet is intended as [[Bitboards|bitboard]] version of [[TSCP]] with [[WinBoard]] support <ref>[http://www.talkchess.com/forum/viewtopic.php?t=38787 Writing a chess program in xx steps] by [[Stef Luijten]], [[CCC]], April 18, 2011</ref>, <br />
and is loosely derived from [[Wing]], Stef Luijten's former private engine <ref>[http://web.archive.org/web/20120621100214/http://www.sluijten.com/winglet/ Winglet, Writing a Chess Program in 99 Steps] by [[Stef Luijten]], hosted by the [https://en.wikipedia.org/wiki/Wayback_Machine Wayback Machine]</ref>, <br />
in the meantime also open source <ref>[http://kirr.homeunix.org/chess/engines/Jim%20Ablett/WING/ Index of /chess/engines/Jim Ablett/WING] by [[Jim Ablett]], hosted by [[Kirill Kryukov]]</ref>. <br />
<br />
=Description=<br />
==Board Representation==<br />
<span id="SlidingAttacks"></span>Winglet applies a mixture of [[Kindergarten Bitboards]] and [[Magic Bitboards]] <ref>[http://web.archive.org/web/20120621060943/http://www.sluijten.com/winglet/11movegen03.htm#Move_generation_for_sliding_pieces_-_magic_bitboards_ Writing a chess program in 99 steps - Move generation for sliding pieces] by [[Stef Luijten]], [https://en.wikipedia.org/wiki/Wayback_Machine Wayback Machine]</ref> to determine [[Sliding Piece Attacks|sliding piece attacks]] with 32 [https://en.wikipedia.org/wiki/Kibibyte KiB] precalculated lookup tables[64][64] each on [[Ranks|ranks]], [[Files|files]], [[Diagonals|diagonals]] and [[Anti-Diagonals|anti-diagonals]], indexed by [[Squares|square]] and hashed line [[Occupancy|occupancy]] - the [[First Rank Attacks#TheOuterSquares|inner six bits]] multiplied by a [[Magic Bitboards|magic factor]] and shifted right by the strange looking 57, while 58 is more natural to ensure a six bit index range, using a constant factor (b-File) for all squares of a diagonal or anti-diagonal, ...<br />
<pre><br />
U64 arrDiagonalAttacks[64][64]] /* requires initialization */<br />
<br />
U64 diagonalKindergartenAttacks(U64 occ, enumSquare sq) {<br />
occ = (diagonalMaskEx[sq] & occ) * C64(0x0202020202020202) >> 58;<br />
return arrDiagonalAttacks[sq][occ];<br />
}<br />
</pre><br />
... but "magic" Winglet factors are designed such that the most significant bit of the 64-bit product will always be clear, that is positive if interpreted as signed 64-bit integer. It seems, Winglet's occupied index calculations emulate Wing's [[Rotated Bitboards|rotated bitboard]] indices for same attack table layout:<br />
<pre><br />
/* Winglet's occupancy state == Wing's occupancy state */<br />
(occ & MG_DIAGA8H1MASK[sq]) * MG_DIAGA8H1MAGIC[sq] >> 57 == (occ045 >> DIAGA8H1_ATTACK_SHIFT[sq]) & 63<br />
(occ & MG_DIAGA1H8MASK[sq]) * MG_DIAGA1H8MAGIC[sq] >> 57 == (occ315 >> DIAGA1H8_ATTACK_SHIFT[sq]) & 63<br />
(occ & MG_FILEMASK[sq]) * MG_FILEMAGIC[sq]) >> 57 == (occ090 >> FILE_ATTACK_SHIFT[sq]) & 63<br />
</pre><br />
<br />
==Search==<br />
* [[Iterative Deepening]]<br />
* [[Alpha-Beta]]<br />
* [[Principal Variation Search]]<br />
* [[Quiescence Search]]<br />
* [[MVV-LVA]]<br />
* [[Static Exchange Evaluation]]<br />
* [[Null Move Pruning]]<br />
<br />
==Evaluation==<br />
* [[Material#Balance|Material Balance]]<br />
* [[Piece-Square Tables]]<br />
* [[Pawn Structure]]<br />
: [[Passed Pawn]]<br />
: [[Backward Pawn]]<br />
: [[Doubled Pawn]]<br />
: [[Isolated Pawn]]<br />
* [[Bishop Pair]]<br />
* [[Rook on Open File]]<br />
* [[Tarrasch Rule|Rook behind Passers]]<br />
* [[King Safety]] in [[Opening]], [[Middlegame]]<br />
: [[King Safety#PawnShield|Pawn Shield]]<br />
: [[King Safety#KingTropism|King Tropism]]<br />
* [[King Centralization]] in [[Endgame]]<br />
<br />
=See also=<br />
* [[Chesser]] by [[Syed Fahad]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=54740 Chesser: A Chess Engine derived from wingletx] by [[Syed Fahad]], [[CCC]], December 24, 2014</ref><br />
* [[Godot]] by [[Ulysse Carion]] <ref>[https://github.com/ucarion/godot ucarion/godot · GitHub]</ref><br />
* [[Kenny]] by [[Kenshin Himura]] <ref>[https://github.com/kenshinthebattosai/kenny kenshinthebattosai/Kenny · GitHub]</ref> <ref>[http://www.talkchess.com/forum/viewtopic.php?t=46814 New Winboard Engine 'Kenny' - JA builds available] by [[Jim Ablett]], [[CCC]], January 08, 2013</ref><br />
* [[Vajolet]] by [[Marco Belli]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=52709&start=18 Re: where to start chess programming?] by [[Marco Belli]], [[CCC]], June 22, 2014</ref><br />
* [[Wing]] by [[Stef Luijten]]<br />
<br />
=Forum Posts=<br />
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=51701 writing a chess engine in xx steps] by [[Stef Luijten|wing]], [[Computer Chess Forums|Winboard Forum]], April 18, 2011<br />
* [http://www.talkchess.com/forum/viewtopic.php?t=38787 Writing a chess program in xx steps] by [[Stef Luijten]], [[CCC]], April 18, 2011<br />
* [http://www.open-chess.org/viewtopic.php?f=5&t=1354 Chess Programming/Concepts for Beginners] by MoldyJacket, [[Computer Chess Forums|OpenChess Forum]], April 18, 2011<br />
<br />
=External Links=<br />
==Chess Engine==<br />
* [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/WINGLET/ Index of /chess/engines/Jim Ablett/WINGLET] by [[Jim Ablett]], hosted by [[Kirill Kryukov]]<br />
* [https://github.com/PortugalTheMan/winglet/tree/master PortugalTheMan/winglet · GitHub] <ref>[http://schach.chess.com/forum/view/general/winglet-chess-engine-revived Winglet Chess Engine; Revived!] by [http://www.chess.com/members/view/PortugalTheMan PortugalTheMan], [https://en.wikipedia.org/wiki/Chess.com Chess.com], Septermber 24, 2014</ref><br />
* [http://aghaznawi.comuf.com/computer%20chess/winglet/ winglet, writing a chess program in 99 steps] by [[Stef Luijten]], hosted by [[Abdullah Al-Ghaznawi]] <ref>copy was taken in March 07, 2013, images and archives included</ref><br />
==Tutorial Archive==<br />
{{Winglet to Include}}<br />
==Misc==<br />
* [https://en.wikipedia.org/wiki/Wingtip_device#Winglet Winglet from Wingtip device - Wikipedia]<br />
* [http://theflyingengineer.com/flightdeck/winglets-and-sharklets/ Winglets and Sharklets | The Flying Engineer]<br />
* [http://www.b737.org.uk/winglets.htm Boeing 737 Winglets]<br />
* [http://www.airbus.com/innovation/proven-concepts/in-design/winglets/ Winglets | Airbus, a leading aircraft manufacturer]<br />
<br />
=References= <br />
<references /><br />
'''[[Engines|Up one Level]]'''<br />
[[Category:Open Source]]<br />
[[Category:GPL]]<br />
[[Category:WinBoard]]</div>
GerdIsenberg