GithubHelp home page GithubHelp logo

kelp's Introduction

Kelp

Rust-CI

Kelp

Kelp is a UCI compatible chess engine written in Rust Using standard chess algorithms.

Kelp is work in progress. Currently, it can be used as a UCI engine But evaluation needs a lot of work to be done especially the endgame evaluation.

Play Against It

Lichess:- https://lichess.org/@/KelpBot

Kelp is UCI compatible it should work with any UCI compatible gui, so far kelp has been tested on Pychess, BanskaiGUI, Arena and cutechess.

Example

Example

Installation

Kelp Binary can be downloaded from Releases page for Windows and Linux.

Build

cargo build --release

About

Board

  • A bitboard[12] array is used to represent the board. Each piece is mapped to a bitboard.
  • standard make/unmake move functions are used, unmake move use move history to unmake instead of copy/take approach.

Search

  • Iterative deepening with aspiration windows.
  • Negamax with alpha-beta pruning.
  • Principal Variation Search.
  • Late Move Reduction.
  • Null Move Pruning.
  • Quiescence Search.
  • Transposition Table.
  • Move Ordering
    • MVV-LVA
    • Killer Moves
    • History Heuristic
    • PV Table

Evaluation

  • Piece Square Tables
  • Tapered Eval
  • Basic King Safety
  • Mobility & Basic Mop Up Evaluation
  • Passed Pawns, Isolated Pawns, Doubled Pawns

TODO

  • Better King Safety and Pawn Shield
  • Better Mobility
  • Better Mop Up Evaluation
  • Opening Book
  • Integrate Syzygy Endgame Tablebases
  • Integrate Stockfish's NNUE

Tests

Kelp Implements some basic tests suchs as perft test, fen parsing and incremental update of zobrist hash. Perft results are compared with Perft Results and incremental update of zobrist hash is compared with scratch generation of zobrist hash.

cargo test

References & Resources

Resources that helped me a lot in making this engine.

License

Kelp is licensed under the GNU General Public License v3.0. See LICENSE for details.

kelp's People

Contributors

gautam8404 avatar

Stargazers

Gourab Ghosh avatar Sumit Kumar avatar Mohamed Eliwa avatar Arpan Ghosh avatar drakeerv avatar Debayan Sutradhar  avatar A B H I avatar TD Mackey avatar Vitaliy Talyh avatar David Penaskovic avatar Hardik Majethia avatar  avatar Rémy Marquis avatar  avatar  avatar Piyush Lamba avatar John M. Gamble avatar ino avatar  avatar  avatar

Watchers

Roelof Berkepeis avatar Protej avatar  avatar

Forkers

mojahidul01

kelp's Issues

disconnecting & memory issue

v0.12.0 may disconnect in CuteChess & tends to occupy memory when game ended.
to me this is a severe issue, i don't run Kelp v0.12.0 anymore ..

[ i'm on Xubuntu 22.04 ]

Kelp always use a thread

I test engines with ponder off and single core, to get the largest quantity of games with my PC (16 threads). Kelp 0.12.0 always grab a thread, wether it is his turn or not. It does not seem to be pondering, but Kelp uses this thread at all times anyway. Is there a way that you can fix this?

PC: R7 5700G
OS: W10 x64

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.