Skip to content

A simple, but relatively powerful alphabeta chess engine that implements a custom graphical user interface built using Python's Tkinter.

License

Notifications You must be signed in to change notification settings

dymackenzie/chess-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Chess Engine with GUI

drawing


Introduction

A simple, but relatively powerful alphabeta chess engine that implements a custom graphical user interface built using Python's Tkinter. It employs all advanced chess rules such as pinning, castling, and en passant. To encourage diversity of moves, it contains a database of over 3000 openings which the computer will pick at random everytime a new game is played.

Against the computer on lichess.org, it fares well against a bot ranked 1700 in rating.

In order to tinker with the engine and suit it to your needs, the piece values and piece square tables can be adjusted.

To start a new game, you simply have to click on File and you can choose whether to start as white or black.

Features

  1. A fullly functional graphical user interface in Tkinter that handles user inputs in an organized manner.
  2. Wrangles a tab-separated file into a format that the engine can use.
  3. A simple, iterative deepening search to filter out the best move.

Limitations

This engine still lacks some chess rules, such as the 50 moves draw rule and stalemate.

In addition, the search and evaluation function does little to no pruning whatsoever. This causes the bot to search way too many unnecessary positions, resulting in an average time of 5 seconds to search to a depth of 5.

Lisense

GNU GPL v3

About

A simple, but relatively powerful alphabeta chess engine that implements a custom graphical user interface built using Python's Tkinter.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages