Coder Social home page Coder Social logo

seemhuei / cosette Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tearth/cosette

0.0 0.0 0.0 3.55 MB

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

License: GNU Affero General Public License v3.0

JavaScript 0.48% C# 96.16% CSS 0.24% HTML 3.12%

cosette's Introduction

Cosette

Current version: v5.1 (Megumin), 07.06.2021

An UCI-compliant chess engine written in C# for .NET 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

On the table below you can see how engines' strength was changing with the versions. Take note that usually the latest one has an estimated value, which will be updated later to a more concrete result.

Version Release date Elo Main changes
v5.0 (Megumin) 12.04.2021 2503 Futility pruning for quiescence search, razoring, late move pruning, BMI enabled by default, adjusted parameters of search and evaluation.
v4.0 (Komekko) 22.01.2021 2384 Futility pruning, static null-move pruning, evasion move generator, check extensions, adjusted parameters of search and evaluation.
v3.0 (Luna) 12.12.2020 2086 Multi-stage move generation and move ordering, internal iterative deepening, SEE pruning in quiescence search. New evaluation function for fianchetto.
v2.0 (Darkness) 19.10.2020 1985 A bunch of improvements for transposition tables, time management and move ordering. New evaluation functions: pawn shield, bishop pair, doubled rooks, a rook on the open file.
v1.0 (Aqua) 19.09.2020 1875 Initial release.

*value estimated

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
  • moves generator (quiet, loud, captures and evasions)

Evaluation:

  • material (incremental updating)
  • position (piece-square tables, incremental updating)
  • 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 with check detection
  • quiescence SEE pruning
  • iterative deepening
  • internal iterative deepening
  • staged move generating
  • null-move pruning
  • static null-move pruning
  • principal variation search
  • late move reduction
  • late move pruning
  • check extension
  • futility pruning
  • razoring

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

A set of console applications (selfplay + Texel) and 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

cosette's People

Contributors

tearth avatar ddugovic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.