Home * Engines * Counter

Counter, (Счетчик)
an UCI compliant chess engine by Vadim Chizhov, initially written in C# to run under Windows .Net, available since early 2007 [1]. Counter 0.8 played a strong CCCCISC 2008 over the board. Counter was then ported to the Go programming language and released in May 2017 as open source at GitHub, dubbed CounterGo [2].
Mechanical Counters [3]


Counter C#

According to the sdchess description, Counter is based on bitboards using Pradu Kannan's magic bitboard implementation to generate moves [4], while the Counter 1.2 readme claims a hybrid board representation consisting of a 10x12 board and bitboards for pawns [5]. Counter applies PVS alpha-beta with transposition table, null move-, delta-, futility- and extended futility pruning, SEE, LMR, check-, mate threat-, passed pawn- and capture extensions, and IID. The evaluation has improved over the time, specially the assessment of a safe king and passed pawns, since version 0.8, lazy evaluation was removed.


CounterGo comes as didactic open source engine written in the Go programming language along with an intuitive source structure. As modern bitboard engine using a dense board definition [6], it applies magic bitboards to determine sliding piece attacks. Inside its iterative deepening loop, CounterGo performs a parallel search conform to the young brothers wait concept [7] using Goroutines [8], with no (longer) PVS but pure alpha-beta with transposition table and null move pruning. CounterGo extends recaptures of pieces, checks and pawns to the 7th rank only in case of positive SEE, while move ordering is enhanced by the killer and history heuristics along with IID and SEE [9].

Selected Games

CCCCISC 2008, round 5, Counter - SmarThink [10]
[Event "CIS 2008"]
[Site "Moscow SDCHESS RGSU"]
[Date "2008.03.02"]
[Round "5"]
[White "Counter 0.8"]
[Black "SmarThink 1.1 r1119"]
[Result "1/2-1/2"]
1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Nc3 c5 5.cxd5 exd5 6.Bg5 Nc6 7.e3 c4 8.Bxf6 gxf6 
9.Rc1 Be6 10.Be2 Qa5 11.O-O O-O-O 12.Re1 Kb8 13.Qc2 f5 14.Qd2 Rg8 15.Bd1 Rc8 
16.Ba4 Nb4 17.Bc2 Bd6 18.g3 Nxc2 19.Rxc2 f6 20.Nh4 Rcd8 21.Ng2 Bb4 22.Nf4 Bf7 
23.a3 Be7 24.f3 h5 25.Kf2 h4 26.Rg1 hxg3+ 27.hxg3 Rg5 28.Rh1 Rg7 29.Rh3 Qc7 
30.Rc1 Rg5 31.Nb5 Qd7 32.Qa5 a6 33.Nc3 Bg8 34.Rh8 Rc8 35.Rch1 Bd8 36.Qa4 Qd6 
37.R1h5 Bc7 38.Qc2 Qc6 39.R5h6 Qd6 40.Nh5 Rxh5 41.Rxh5 Qxg3+ 42.Kf1 f4 43.Rh3 
Qg7 44.exf4 b5 45.f5 Qg5 46.R3h4 Bf7 47.R8h7 Bg8 48.Rg4 Qe3 49.Rh3 Re8 50.Rg7 
a5 51.Qf2 Qd3+ 52.Kg2 b4 53.axb4 axb4 54.Rh8 bxc3 55.Rgxg8 Rxg8+ 56.Rxg8+ Kb7 
57.bxc3 Qxc3 58.Rg6 Qc1 59.Qe2 Qf4 60.Rg4 Qxf5 61.Qb2+ Kc6 62.Qa2 Kb5 63.Qb2+ 
Kc6 64.Qa2 Kb5 65.Qb2+ Kc6 1/2-1/2

Forum Posts

2007 ...

2010 ...

External Links

Chess Engine



  1. ^ Counter 1.2 Updated by Swaminathan, CCC, February 12, 2010
  2. ^ New version of Counter (in Go language) by Günther Simon, CCC, May 27, 2017
  3. ^ Three mechanical counters by Arnold Reinhold, April 20, 2009, CC BY-SA 3.0, Wikimedia Commons, Counter from Wikipedia
  4. ^ Counter by Вадим Чижов (Vadim Chizhov), Russia! from sdchess.ru
  5. ^ Counter_12 - readme.txt
  6. ^ CounterGo/types.go at master · ChizhovVadim/CounterGo · GitHub
  7. ^ CounterGo/searchutils.go at master · ChizhovVadim/CounterGo · GitHub
  8. ^ Effective Go - The Go Programming Language - Concurrency
  9. ^ CounterGo/searchservice.go at master · ChizhovVadim/CounterGo · GitHub
  10. ^ The The First championship of the CIS (Первый официальный чемпионат СНГ) from sdchess.ru

What links here?

Up one Level