Skip to content

NicolaiSorensen/Cosette

 
 

Repository files navigation

Cosette

Current version: v3.0 (Luna), 12.12.2020

An UCI-compliant chess engine written in C# for .NET Core platform, with an official profile on CCRL (Computer Chess Rating Lists) where you can check the best strength estimation. Feel free to visit a dedicated forum thread for Cosette releases and discussions!

Cosette interactive console example

How to play?

The simplest way is to download the newest version from the Releases page and use it with a graphical interface like Arena or WinBoard. The engine has been tested extensively on the first one, but should work with every UCI-compliant GUI.

Cosette has an official account on lichess.org platform, which allows everybody to challenge her - feel free to do it!

https://lichess.org/@/CosetteBot

Algorithms

Board representation and move generating:

  • bitboards (with make/undo scheme)
  • magic bitboards
  • precalculated arrays with moves for knight and king

Evaluation:

  • material (incremental updating)
  • position (piece-square tables, incremental updating)
  • castling status
  • mobility
  • king safety
  • pawn structure (cached in pawn hash table)
  • doubled rooks
  • rooks on open files
  • bishop pair
  • fianchetto
  • tapering

Search:

  • negamax
  • alpha-beta pruning
  • transposition table
  • quiescence search
  • quiescence SEE pruning
  • iterative deepening
  • internal iterative deepening
  • staged move generating
  • null-move pruning
  • principal variation search
  • late move reduction

Move ordering:

  • staged move ordering
  • static exchange evaluation
  • killer heuristic
  • history heuristic

Additional tools

Arbiter

The simple console application which allows testing chess engines using super-fast time control (like 2s+20"). It has been designed to support Cosette development, but should be also usable with other UCI-compliant engines.

Cosette Arbiter

Tuner

The console application + web interface, which allows adjusting engine parameters using standard UCI command setoption. Results are displayed on the local website using a set of tables and charts.

Cosette Tuner

Polyglot

The small library which allows using opening books saved in the Polyglot format. Feel free to use it if you need this in your own project.

Why Cosette?

https://www.youtube.com/watch?v=XuYF-EnpLpc

About

A brand new UCI-compliant chess engine written in C# for .NET Core platform.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 95.9%
  • HTML 3.3%
  • Other 0.8%