Simple Chess Engine

Introduction

This is a simple implementation of a chess program with minimax algorithm and alpha-beta pruning.

Namely, chess engine at its core.

Features

  • Complete Chess Game
  • ASCII Interface
  • Evaluation Function
  • Artificial Intelligence
    • Minimax Algorithm
    • Alpha-beta Pruning

Architecture

  • Board Representation
  • Move Generation
  • Move Search
  • Move Evaluation

Components

Board Representation

  • Board class
  • Piece class
  • Square class
  • Move class
  • Move List class

Move Generation Function

Board class routine - GenerateMoves(MoveList &moves)

Move Search Function

AI class routine Alpha-beta Pruning - FindBestMove() - Search(int alpha, int beta, int level)

Move Evaluation Function

Materiality

  • Pawn 1
  • Knight 3
  • Bishop 3
  • Rook 5
  • Queen 9
  • King 999

Material Balance = Number of Pieces * Piece Value Mobility = Sum of Legal Moves

Evaluation Function

Utility = (Own Mobility - Opponent Mobility) + Material Balance * 100

Download

Simple Chess Engine

Resources

Chess Programming Wiki