项目作者: ymohamedahmed

项目描述 :
Mortimer the Chess AI
高级语言: Java
项目地址: git://github.com/ymohamedahmed/mortimer.git
创建时间: 2016-09-26T09:09:16Z
项目社区:https://github.com/ymohamedahmed/mortimer

开源协议:

下载


Mortimer

Mortimer is a chess playing program (commonly referred to as a chess engine) which I wrote as a part of my Computer Science A-Level Coursework. However, this project was primarily completed as a means of pursuing my wider interest in Artificial Intelligence. The full write up can be found here. A video outlining some of the features can be found here.

.

Basic Description

Mortimer uses bitboards as its internal board representation this leads to it having very fast move generation speeds since binary number manipulation is very fast on modern computers. As a result, when searching the game tree it can search to relatively high depths (for an amateur project). This helps to make up somewhat for the simple evaluation function. In future, to improve the strength of the AI, the evaluation function would have to consider additional factors such as king safety etc.

Features

  • Alpha-beta pruning
  • Perft testing
  • Magic bitboards for sliding piece move generation
  • Material evaluation
  • Positional evaluation
  • Negamax
  • MTD-f
  • Transposition tables
  • Zobrist hashing
  • PGN
  • Saving and loading games
  • Changing move speed of the AI
  • Different board themes
  • Loading and exporting FEN
  • Undoing moves
  • Playing against another human locally

Resources Used

Usage

A jar is included and can be downloaded here. Alternatively the repo can be cloned and then the code executed as follows (requires JUnit to be compiled):

  1. git clone https://github.com/ymohamedahmed/mortimer.git
  2. cd mortimer/src/
  3. javac */*.java
  4. java core.main