Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

Karballo Chess Engine

Karballo is a Kotlin version of the Carballo Chess Engine, a Java chess engine (http://github.com/albertoruibal/carballo).

Karballo has only a command line UCI interface that can be used in chess interfaces like SCID or Arena.

The source code is hosted at https://github.com/albertoruibal/karballo with a MIT license, you are free to use, distribute or modify the code.

Features

  • Based on bitboards with a magic bitboard move generator, it also includes code for magic number generation
  • Move iterator sorting moves with four killer move slots, Static Exchange Evaluation (SEE), Most Valuable Victim/Least Valuable Aggressor (MVV/LVA) and history heuristic
  • PVS searcher
  • Aspiration window, moves only one border of the window if it falls out
  • Transposition Table (TT) with zobrist keys (it uses two zobrist keys per board to avoid collisions) and multiprobe
  • Quiescent Search (QS) with only good or equal captures (according to SEE) and limited check generation
  • Internal Iterative Deepening to improve sorting
  • Extensions: Check (only with positive SEE), pawn push, mate threat and singular move
  • Reductions: Late Move Reductions (LMR)
  • Pruning: Null move pruning, static null move pruning, futility pruning and history pruning
  • Pluggable evaluator function, distinct functions provided: the Simplified Evaluator Function, other Complete and other Experimental
  • Selectable ELO level with an UCI parameter
  • Supports Chess960
  • Polyglot opening book support; in the code it includes Fruit's Small Book
  • FEN notation import/export support, also EPD support for testing
  • JUnit used for testing, multiple test suites provided (Perft, BS2830, BT2630, LCTII, WinAtChess, etc.)

Building: Jvm

Carballo uses the Gradle build system with a gradle wrapper.

Build the UCI interface creating a karballo.jar in karballo-jvm/:

cd karballo-jvm
../gradlew clean proguard

Running: Jvm

java -jar karballo.jar

Building: Js

Js is a limited version (without opening book and only with a thread) that runs in NodeJS

cd karballo-js
npm install
../gradlew clean assemble

This generates a CommonJS module in js/karballo.js

Running: Js

cd karballo-js
node js/karballo.js

Author

About

A Kotlin Chess Engine

Resources

License

Releases

No releases published

Languages

You can’t perform that action at this time.