Formally ( this is a blog documenting my rash decision in mid 2008 to learn to program my own Chess Game.

During this project I have learned quite a bit about the art of Computer Chess and amazingly I managed to build an reasonably strong chess engine.  

Recently I uploaded the source code to the Chess Bin engine to GitHub. It has been converted to .NET core and new version of .NET that is available on multiple platforms. I may from time to time update this version as new features in .NET core become available.

Table of Contents


Project Goals

Choice of Programming Language

Chess Engine Features

Board Representation and Movement

Chess Piece Representation

Chess Board Square

Chess Board Representation

Chess Piece Moves

Chess Piece Valid Moves

Move Content

Chess Engine

Starting the Chess Engine

Piece Square Table

Chess Board Evaluation

Search for Mate

Move Searching and Alpha Beta

Move Searching and Alpha Beta Part 2

Quiescence Search and Extensions

Forsyth–Edwards Notation

Completing the Chess Engine

Performance Optimization Advice

Performance Reconstruction Phase Three

Transposition Table and Zobrist Hashing


If you would like to see the working product of this website:

Download Chess Bin Chess