Skip to content

A chess engine that implements a minimax algorithm, alpha-beta pruning, piece-square tables, move ordering, and a command-line UI

Notifications You must be signed in to change notification settings

adamrounsville/excalibur-chess-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

♟ Excalibur – A Chess Engine

A chess engine which implements:

It uses Python 3.8 with mypy type hints and unit + integration tests.

Install

pip install -r requirements.txt

Use it via the command-line

Start the engine with:

python3 chess_board.py

Start as [w]hite or [b]lack:
w

  8 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
  7 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
  6 · · · · · · · ·
  5 · · · · · · · ·
  4 · · · · · · · ·
  3 · · · · · · · ·
  2 ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟
  1 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
    a b c d e f g h

Your move (e.g. b1c3):

Tests

There are unit tests for the engine, UI, and evaluation modules.

python3 -m unittest discover tests/

Type checking:

mypy .

About

A chess engine that implements a minimax algorithm, alpha-beta pruning, piece-square tables, move ordering, and a command-line UI

Topics

Resources

Stars

Watchers

Forks

Languages