Zurichess

an UCI compliant open source chess engine and chess library by Alexandru Moșoi, written in the Go programming language, first released in January 2015. The name Zurichess is in dependence on [|Züritüütsch], the [|High Alemannic dialect] spoken in the [|Canton of Zurich], [|Switzerland]. Versions are named after [|Swiss Cantons] in alphabetical order. || toc =Description=
 * Home * Engines * Zurichess**
 * [[image:Zürich_German_monophthongs_chart.svg.png width="224" height="163" link="https://commons.wikimedia.org/wiki/File:Z%C3%BCrich_German_monophthongs_chart.svg"]] ||~  || **Zurichess**,
 * [|Zurich German] [|monophthongs] ||~  ||^   ||

A-B
Zurichess uses bitboards with De Bruijn bitscan for serialization, and fancy magic bitboards to determine sliding piece attacks. The search applies fail soft negamax alpha-beta plus transposition table inside the iterative deepening loop with aspiration windows. Move ordering is improved by the killer heuristic and considers MVV/LVA for captures. Evaluation relies on the simplified evaluation function using a tapered eval interpolating between opening and endgame scores of material and piece-square tables. While the first public release **Aargau** lacked all kinds of forward pruning, reductions and extensions, subsequent versions, **Appenzeller** and **Basel** improved on various search and evaluation topics, now addressing null move pruning and mobility beside a lot of other things and optimizations, not to mention fixing bugs. **Bern** release in June 2015 is about 130 Elo stronger than Basel. 

Fribourg
Zurichess **Fribourg**, released on August 30, 2015, now has passed pawn evaluation, considering connected and isolated pawns. Tuning was done using Texel's tuning method implemented by **txt**. LMR was added, as well as static exchange evaluation (SEE) to sort captures, to prune bad captures (SEE < 0) in quiescence search and to aggressively reduce bad quiet moves (SEE < 0) at higher depths. Further, staged move generation and pondering were added, and two-fold repetitions at non-root nodes pruned. Zurichess Fribourg is about 200 Elo stronger than Bern. 

Geneva
Zurichess **Geneva**, released on November 29, 2015, and now aware of the fifty-move draw rule, has added basic futility pruning and relaxed null move conditions allowing double null moves. In eval, tuning switched from **txt** to [|TensorFlow] - a two layers neural network is used, where the second layer is responsible for a tapered eval to phase endgame and middlegame scores. Rooks were evaluated on open and half-open files, and mobility calculation was improved. Zurichess Geneva is about 100 Elo stronger than Fribourg. 

Glarus
Announced and released on April 17, 2016, Zurichess **Glarus** has improved futility conditions and added history leaf pruning, further improving pawn hash table utilization by caching pawn shelter, king safety by considering number of simultaneous attackers, and time control. Glarus is about 80 Elo stronger than Geneva in self-play. 

Graubuenden
Zurichess **Graubuenden** was released on August 16, 2016 with various tweaks, search and evaluation improvements such as hashing in quiescence search, and new features like skill levels and multi-PV. Further, a new version of the Go compiler yields in increased search speed. In self-play Graubuenden is about 110 Elo stronger than Glarus. 

Jura
Zurichess **Jura** appeared on February 18, 2017 with improved selectivity, move ordering and evaluation, introducing razoring, countermove heuristic, king-queen tropism and rook-square tables plus various tweaks and re-tuning. In self play at fast time controls Jura is about 85 Elo stronger than Graubuenden. 

Luzern
Zurichess **Luzern**, released on May 08, 2017, further enhanced its search and evaluation, in particular a 16% faster search and considering defended minors, pawn attacks an potential pawn attacks. In self play Luzern is about 64 Elo stronger than Jura. 

Neuchâtel
Zurichess **Neuchâtel** became a stable release in September 2017 with an expected gain of 50 Elo.

=See also=
 * ETH Zurich
 * Geography

=Forum Posts=

2015

 * [|zurichess - new chess engine] by Alexandru Mosoi, CCC, January 16, 2015
 * [|zurichess appenzeller - new version] by Alexandru Mosoi, CCC, February 21, 2015
 * [|Re: txt: automated chess engine tuning] by Alexandru Mosoi, CCC, April 11, 2015 » Automated Tuning
 * [|zurichess basel released] by Alexandru Mosoi, CCC, April 27, 2015
 * [|zurichess bern released] by Alexandru Mosoi, CCC, June 07, 2015
 * [|zurichess fribourg released] by Alexandru Mosoi, CCC, August 30, 2015
 * [|zurichess geneva released] by Alexandru Mosoi, CCC, November 29, 2015

2016
> [|Re: Deep Learning Chess Engine ?] by Alexandru Mosoi, CCC, July 21, 2016
 * [|hacking on zurichess] by Alexandru Mosoi, CCC, January 06, 2016
 * [|trivia: ELO boost from a better compiler] by Alexandru Mosoi, CCC, March 22, 2016 » Go (Programming Language)
 * [|king safety: hard positions for zurichess] by Alexandru Mosoi, CCC, March 27, 2016 » King Safety, Test-Positions
 * [|zurichess glarus released] by Alexandru Mosoi, CCC, April 17, 2016
 * [|Re: Deep Learning Chess Engine ?] by Alexandru Mosoi, CCC, July 21, 2016
 * [|zurichess graubuenden released] by Alexandru Mosoi, CCC, August 16, 2016

2017

 * [|zurichess jura - preview release] by Alexandru Mosoi, CCC, January 19, 2017
 * [|zurichess jura released] by Alexandru Mosoi, CCC, February 18, 2017
 * [|improved evaluation function] by Alexandru Mosoi, CCC, March 11, 2017 » Texel's Tuning Method
 * [|speed up or avoiding move sorting] by Alexandru Mosoi, CCC, March 19, 2017 » Move Ordering
 * [|zurichess - new version release] by Alexandru Mosoi, CCC, May 08, 2017
 * [|zurichess neuchatel - preview release] by Alexandru Mosoi, CCC, August 29, 2017
 * [|need some help assessing the evaluation] by Alexandru Mosoi, CCC, December 02, 2017

=External Links=

Chess Engine

 * [|brtzsnr / zurichess — Bitbucket]
 * [|zurichess / zurichess — Bitbucket]
 * [|Zurichess] in CCRL 40/40

Aargau

 * [|Aargau from Wikipedia]

Appenzell

 * [|Appenzell (disambiguation) from Wikipedia]
 * [|Appenzell (town) from Wikipedia]
 * [|Appenzeller cheese from Wikipedia]

Basel

 * [|Basel (disambiguation) from Wikipedia]
 * [|Basel from Wikipedia]
 * [|Canton of Basel from Wikipedia]

Bern

 * [|Bern (disambiguation) from Wikipedia]
 * [|Bern from Wikipedia]
 * [|Canton of Bern from Wikipedia]

Fribourg

 * [|Fribourg (disambiguation) from Wikipedia]
 * [|Fribourg from Wikipedia]
 * [|Canton of Fribourg from Wikipedia]

Geneva

 * [|Geneva (disambiguation) from Wikipedia]
 * [|Geneva from Wikipedia]
 * [|Canton of Geneva from Wikipedia]
 * [|Geneva Conventions from Wikipedia]
 * [|Geneva Protocol from Wikipedia]

Glarus

 * [|Glarus from Wikipedia]
 * [|Canton of Glarus from Wikipedia]
 * [|Glarus Alps from Wikipedia]
 * [|Glarus thrust from Wikipedia]

Graubünden

 * [|Graubünden (Grisons) from Wikipedia]
 * [|Three Leagues from Wikipedia]

Jura

 * [|Canton of Jura from Wikipedia]
 * [|Jura Mountains from Wikipedia]

Luzern

 * [|Lucerne from Wikipedia]
 * [|Canton of Lucerne from Wikipedia]

Neuchâtel

 * [|Neuchâtel (disambiguation) from Wikipedia]
 * [|Neuchâtel from Wikipedia]
 * [|Canton of Neuchâtel from Wikipedia]

Zurich

 * [|Zurich (disambiguation) from Wikipedia]
 * [|Zürich from Wikipedia]
 * [|Canton of Zürich from Wikipedia]

=References= =What links here?= include page="Zurichess" component="backlinks" limit="40"
 * Up one Level**