All Projects → MitchelPaulin → Walleye

MitchelPaulin / Walleye

Licence: MIT License
A chess engine written from scratch in Rust ♞

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Walleye

Sunfish
Sunfish: a Python Chess Engine in 111 lines of code
Stars: ✭ 2,254 (+2648.78%)
Mutual labels:  chess-engine, chess, chess-ai
Bit-Genie
UCI chess engine in C++
Stars: ✭ 19 (-76.83%)
Mutual labels:  chess-engine, chess, chess-ai
fastchess
Predicts the best chess move with 27.5% accuracy by a single matrix multiplication
Stars: ✭ 75 (-8.54%)
Mutual labels:  chess-engine, chess, chess-ai
OpenChess
A cross-platform chess game.
Stars: ✭ 18 (-78.05%)
Mutual labels:  chess-engine, chess
elephantfish
elephantfish: 一个只有124行的中国象棋引擎
Stars: ✭ 129 (+57.32%)
Mutual labels:  chess-engine, chess
rustic
Rustic is a chess engine. It is written from scratch, in the Rust programming language.
Stars: ✭ 68 (-17.07%)
Mutual labels:  chess-engine, chess
Demolito
UCI Chess Engine
Stars: ✭ 41 (-50%)
Mutual labels:  chess-engine, chess
Realtime-OpenCV-Chess
♔ Chess-playing with Open-CV [Human vs AI (Stockfish engine)]
Stars: ✭ 18 (-78.05%)
Mutual labels:  chess-engine, chess
php-grandmaster
Chess engine written in PHP
Stars: ✭ 100 (+21.95%)
Mutual labels:  chess-engine, chess-ai
zahak
A UCI compatible chess AI in Go
Stars: ✭ 20 (-75.61%)
Mutual labels:  chess-engine, chess
littlewing
Chess engine written in Rust ♛
Stars: ✭ 27 (-67.07%)
Mutual labels:  chess-engine, chess
uci
A thin wrapper on a uci chess engine
Stars: ✭ 33 (-59.76%)
Mutual labels:  chess-engine, chess
ConvChess
Convolutional Neural Networks learns to play chess moves
Stars: ✭ 14 (-82.93%)
Mutual labels:  chess-engine, chess
Batch-First
A JIT compiled chess engine which traverses the search tree in batches in a best-first manner, allowing for neural network batching, asynchronous GPU use, and vectorized CPU computations.
Stars: ✭ 27 (-67.07%)
Mutual labels:  chess, chess-ai
lc0-docker
lc0docker: run lc0 chess client and lichess bot under Docker and Kubernetes
Stars: ✭ 26 (-68.29%)
Mutual labels:  chess-engine, chess-ai
renpy-chess
A chess GUI built with Ren'Py, python-chess, and Stockfish. Version 2.0 of https://github.com/RuolinZheng08/renpy-chess-engine
Stars: ✭ 36 (-56.1%)
Mutual labels:  chess-engine, chess
ChessVisionBot
Chessbot using computer vision to play on any chess website
Stars: ✭ 32 (-60.98%)
Mutual labels:  chess, chess-ai
stockfish-chess-web-gui
Responsive chess web GUI to play against the Stockfish 10 chess engine. Multiple web GUI implementations have also been included.
Stars: ✭ 21 (-74.39%)
Mutual labels:  chess-engine, chess
Zerofish
An implementation of the AlphaZero algorithm for chess
Stars: ✭ 34 (-58.54%)
Mutual labels:  chess-engine, chess
magic-bits
A C++ header-only library for efficient move generation in Chess using "magic bitboards" technique
Stars: ✭ 26 (-68.29%)
Mutual labels:  chess-engine, chess

Walleye

tests

Walleye is a UCI-compatible chess engine written using the classic alpha-beta style AI.

Play Against It

Challenge me on Lichess! https://lichess.org/@/Walleye_Bot

The engine should also work in any chess program that supports UCI, at this time however it has only been tested with Cute Chess.

Example Usage

By default, the engine launches in UCI mode and expects to be loaded into a chess GUI.
However, you can run some commands from the terminal, such as -P to watch the engine play against itself or -T to benchmark move generation and evaluation.

# helpful when profiling, will accept a FEN string
./walleye -T --depth=5
# start a game from a FEN string and have the engine play against itself
./walleye --fen="r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1" -P

demo

Use ./walleye --help for a complete list of commands.

Building

It is strongly recommended you compile the engine with --release for the best performance.

cargo build --release

Portability

In the cargo/config file the target CPU is set to native. During testing I saw modest performance improvements using this setting. If however you plan to compile Walleye and use the binary on multiple systems you should delete these lines before compiling.

About

Board

  • Square Centric 12x12 Array

Extra board squares are sentinel squares to make boundary checking easier.

Search

  • Alpha-Beta Pruning
  • Iterative Deepening
  • Capture/Check Extension
  • Killer Moves
  • MVV-LVA
  • PV Search

Evaluation

  • Piece Square Table

Other

  • Terminal based games with unicode chess boards
  • Robust logging

Tests

Walleye comes with a suite of unit tests and perft tests. It has been verified on a variety of positions to around depth 5.

# run perft tests
cargo test perft
# run all tests
cargo test

Rating

Walleye was ranked by CCRL, you can find its rating between versions here

Resources

Some resources and tools I found helpful when creating this engine.

Issues

If you find an issue with the engine please include the walleye_{PID}.log file along with the report, you can enable this by setting DebugLogLevel to Info in the UCI options.

License

Walleye is under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].