Skip to main content
guest
Join
|
Help
|
Sign In
chessprogramming
Home
guest
|
Join
|
Help
|
Sign In
Wiki Home
Recent Changes
Pages and Files
Members
Home
Basics
Getting Started
Board Representation
Search
Evaluation
Principle Topics
Chess
Programming
Artificial Intelligence
Knowledge
Learning
Testing
Tuning
User Interface
Protocols
Dictionary
Lists
Arts
Cartoons
CC Forums
Conferences
Dedicated CC
Engines
Games
Hardware
History
Organizations
Papers
People
Periodical
Samples
Software
Timeline
Tournaments and Matches
Videos
Misc
Acknowledgments
On New Pages
Recommended Reading
Wikispaces Help
Tunguska
Edit
0
3
…
7
Tags
disaster
engines
geography
linuxengines
mac
opensourceengines
uciengines
Notify
RSS
Backlinks
Source
Print
Export (PDF)
Home
*
Engines
* Tunguska
Tunguska
,
an
UCI
compliant
open source chess engine
by
Fernando Tenorio
, written in
C++11
, released in December 2016 on
GitHub
[1]
. Tunguska may be build to run under
Windows
,
Linux
and
Mac OS
. A new version should fix the inappropriate
sliding piece attack
implementation (see below) either by using
leading zero count
intrinsics or
magic bitboards
.
Fallen trees at
Tunguska
, 1927
[2]
Table of Contents
Description
Board Representation
Search
Evaluation
See also
Forum Posts
External Links
Chess Engine
Misc
References
What links here?
Description
Board Representation
Tunguska
represents the board
using a
bitboard
array declaration
along the the obligatory
8x8 board
.
Sliding piece attacks
are generated ray-wise by the
classical approach
. While this approach relies on scanning the nearest blocker in positive and negative directions using
bitscan forward
or
bitscan reverse
, aka
trailing
(tzc) or
leading zero count
(lzc), Tunguska implements these zero counts, in particular lzc, without machine instructions.
Kim Walisch's
and Mark Dickinson's
suggestion
of a
parallel prefix fill
for a
MS1B
separation along with
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
uses
iterative deepening
,
alpha-beta
with
transposition table
,
check extensions
,
null move pruning
,
late move reductions
and
futility pruning
. The
move ordering
is enhanced by using the
history heuristic
and
killer heuristic
.
Evaluation
Tunguska's
evaluation
relies on
material
,
piece-square tables
,
mobility
, various
piece specific terms
,
pawn structure
, and
pawn shield
and
zone attacks
concerning
king safety
. All feature weights are aggregated as distinct
middlegame
and
endgame
scores
, finally interpolated by the current
game phase
- a technique known as
tapered eval
.
See also
Disaster
Geography
Forum Posts
New engine Tunguska 1.0
by
Fernando Tenorio
,
CCC
, December 11, 2016
Tunguska engine v2.0
by
Fernando Tenorio
,
CCC
, September 09, 2017
External Links
Chess Engine
GitHub - fernandotenorio/Tunguska: UCI compliant chess Engine
Tunguska 1.0 64-bit in CCRL 40/40
Misc
Tunguska event from Wikipedia
Podkamennaya Tunguska River from Wikipedia
References
^
New engine Tunguska 1.0
by
Fernando Tenorio
,
CCC
, December 11, 2016
^
Fallen trees at Tunguska, 1927
,
Tunguska event from Wikipedia
,
Wikimedia Commons
What links here?
Page
Date Edited
Engines
Mar 10, 2018
Tunguska
Sep 16, 2017
Up one Level
Javascript Required
You need to enable Javascript in your browser to edit pages.
help on how to format text
Turn off "Getting Started"
Home
...
Loading...
an UCI compliant open source chess engine by Fernando Tenorio, written in C++11, released in December 2016 on GitHub [1]. Tunguska may be build to run under Windows, Linux and Mac OS. A new version should fix the inappropriate sliding piece attack implementation (see below) either by using leading zero count intrinsics or magic bitboards.
Table of Contents
Description
Board Representation
Tunguska represents the board using a bitboard array declaration along the the obligatory 8x8 board. Sliding piece attacks are generated ray-wise by the classical approach. While this approach relies on scanning the nearest blocker in positive and negative directions using bitscan forward or bitscan reverse, aka trailing (tzc) or leading zero count (lzc), Tunguska implements these zero counts, in particular lzc, without machine instructions. Kim Walisch's and Mark Dickinson's suggestion of a parallel prefix fill for a MS1B separation along with 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 uses iterative deepening, alpha-beta with transposition table, check extensions, null move pruning, late move reductions and futility pruning. The move ordering is enhanced by using the history heuristic and killer heuristic.Evaluation
Tunguska's evaluation relies on material, piece-square tables, mobility, various piece specific terms, pawn structure, and pawn shield and zone attacks concerning king safety. All feature weights are aggregated as distinct middlegame and endgame scores, finally interpolated by the current game phase - a technique known as tapered eval.See also
Forum Posts
External Links
Chess Engine
Misc
References
What links here?
Up one Level