Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

The purpose of this program is to provide a framework that allows playing different (board) games, if desired, against AI opponents.
The currently implemented games are (standard) Chess and Reversi.
The currently implemented AI algorithms are Negamax and MonteCarlo tree search.

The key objective for the program was to create an architecture with a high degree of code reusability, modularization, and clarity.
Hence, depending on how similar they are to the already provided, implementing further games should be comparatively easy.

Performance, on the other hand, was only a subordinate goal. As a result, the playing strength of the currently implemented AI agents is, at least regarding chess, comparatively weak.

The approach is unusual in that the core of the program widely refrains from side effects: Instead of altering a game state, a new one is created. This results in AI algorithms that could be written in a very functional style, since during simulations of possible games former states are preserved and don't have to be restored.

How to use

Binaries: Release

If you want to compile the code yourself, compile and run /src/Initialization/GameInitializer.
Alter /src/Initialization/GameInitializationConfig in order to adapt the configuration according to your wishes.

Design Documentation

Will be provided here in the near future.

Utilized projects

Used pictures of chess pieces by Cburnett:
https://commons.wikimedia.org/wiki/Category:PNG_chess_pieces/Standard_transparent
https://creativecommons.org/licenses/by-sa/3.0/

The GUIs utilize the GTK framework and the GtkSharp wrapper for .NET:
https://www.gtk.org/
https://github.com/GtkSharp/GtkSharp

Known Limitations

The GUIs currently need a display resolution of at least 720p in order to be fully displayed.

About

Framework for playing turn-based games against AI opponents.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages