Older Version Newer Version

GerdIsenberg GerdIsenberg Sep 16, 2017

**[[Home]] * [[Engines]] * Tunguska**
|| [[image:Tunguska.jpg link="https://commons.wikimedia.org/wiki/File:Tunguska.png"]] ||~ || **Tunguska**,
an [[UCI]] compliant [[Open Source Engines|open source chess engine]] by [[Fernando Tenorio]], written in [[Cpp|C++11]], released in December 2016 on [[https://en.wikipedia.org/wiki/GitHub|GitHub]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=62455|New engine Tunguska 1.0]] by [[Fernando Tenorio]], [[CCC]], December 11, 2016</ref>. Tunguska may be build to run under [[Windows]], [[Linux]] and [[Mac OS]]. A new version should fix the inappropriate [[Sliding Piece Attacks|sliding piece attack]] implementation (see below) either by using [[BitScan#LeadingZeroCount|leading zero count]] intrinsics or [[Magic Bitboards|magic bitboards]]. ||
|| Fallen trees at [[https://en.wikipedia.org/wiki/Tunguska_event|Tunguska]], 1927 <ref>[[https://commons.wikimedia.org/wiki/File:Tunguska.png|Fallen trees at Tunguska, 1927]], [[https://en.wikipedia.org/wiki/Tunguska_event|Tunguska event from Wikipedia]], [[https://en.wikipedia.org/wiki/Wikimedia_Commons|Wikimedia Commons]]</ref>  ||~ ||^ ||
[[toc]]
=Description=
==Board Representation==
Tunguska [[Board Representation|represents the board]] using a [[Bitboards|bitboard]] [[Bitboard Board-Definition|array declaration]] along the the obligatory [[8x8 Board|8x8 board]]. [[Sliding Piece Attacks|Sliding piece attacks]] are generated ray-wise by the [[Classical Approach|classical approach]]. While this approach relies on scanning the nearest blocker in positive and negative directions using [[BitScan#Bitscanforward|bitscan forward]] or [[BitScan#Bitscanreverse|bitscan reverse]], aka [[BitScan#TrailingZeroCount|trailing]] (tzc) or [[BitScan#LeadingZeroCount|leading zero count]] (lzc), Tunguska implements these zero counts, in particular lzc, without machine instructions. [[Kim Walisch|Kim Walisch's]] and Mark Dickinson's [[BitScan#FillDeBruijn|suggestion]] of a [[Parallel Prefix Algorithms|parallel prefix fill]] for a [[General Setwise Operations#TheMostSignificantOneBitMS1B|MS1B]] separation along with [[De Bruijn sequence|De Bruijn]] multiplication and lookup is likely the cheapest general implementation without hardware support, but still far to slow for this purpose considering other sliding piece attack approaches.

==Search==
So far the [[Search|search]] uses [[Iterative Deepening|iterative deepening]], [[Alpha-Beta|alpha-beta]] with [[Transposition Table|transposition table]], [[Check Extensions|check extensions]], [[Null Move Pruning|null move pruning]], [[Late Move Reductions|late move reductions]] and [[Futility Pruning|futility pruning]]. The [[Move Ordering|move ordering]] is enhanced by using the  [[History Heuristic|history heuristic]] and [[Killer Heuristic|killer heuristic]].

==Evaluation==
Tunguska's [[Evaluation|evaluation]] relies on [[Material|material]], [[Piece-Square Tables|piece-square tables]], [[Mobility|mobility]], various [[Evaluation of Pieces|piece specific terms]], [[Pawn Structure|pawn structure]], and [[King Safety#PawnShield|pawn shield]] and [[King Safety#Attacking|zone attacks]] concerning [[King Safety|king safety]]. All feature weights are aggregated as distinct [[Middlegame|middlegame]] and [[Endgame|endgame]] [[Score|scores]], finally interpolated by the current [[Game Phases|game phase]] - a technique known as [[Tapered Eval|tapered eval]].

=See also=
* [[Various Classifications#Disaster|Disaster]]
* [[Various Classifications#Geography|Geography]]

=Forum Posts=
* [[http://www.talkchess.com/forum/viewtopic.php?t=62455|New engine Tunguska 1.0]] by [[Fernando Tenorio]], [[CCC]], December 11, 2016
* [[http://www.talkchess.com/forum/viewtopic.php?t=65119|Tunguska engine v2.0]]by [[Fernando Tenorio]], [[CCC]],  September 09, 2017

=External Links=
==Chess Engine== 
* [[https://github.com/fernandotenorio/Tunguska|GitHub - fernandotenorio/Tunguska: UCI compliant chess Engine]]
* [[http://www.computerchess.org.uk/ccrl/4040/cgi/engine_details.cgi?print=Details&each_game=1&eng=Tunguska%201.0%2064-bit#Tunguska_1_0_64-bit|Tunguska 1.0 64-bit in CCRL 40/40]]
==Misc==
* [[https://en.wikipedia.org/wiki/Tunguska_event|Tunguska event from Wikipedia]]
* [[https://en.wikipedia.org/wiki/Podkamennaya_Tunguska_River|Podkamennaya Tunguska River from Wikipedia]]

=References= 
<references />
=What links here?= 
[[include page="Tunguska" component="backlinks" limit="20"]]
**[[Engines|Up one Level]]**