Skip to content

Aim to write a fully working game of checkes using MinMax

License

Notifications You must be signed in to change notification settings

AlanFaulkner/Checkers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Checkers

16/2/17 Checkers version 1.0

Overview This project is intended to showcase the ability of neural networks to learn to play a game of checkers. No serious attempts have been made to optimise either the code itself or the overall performance of resulting network. This project represents my own work and relies only on standard libraries included with C# .Net framework version 4.5.2.

Background A few months I was looking for some project with which I could expand my rather basic knowledge of C# (I’d really only completed a few introductory tutorials online at this point), when I decided to try and code a simple game which employed a windows form interface to play. To that end I decided to focus on checkers (https://en.wikipedia.org/wiki/Draughts). While the interface I created has gone through several incarnations prior to the one now present in the code my original attempt was limited to only human vs human gameplay. Realising the need for an AI I did some browsing online looking for some suggestions on how to implement one. My first attempt was to include a MinMax player (https://en.wikipedia.org/wiki/Minimax|), which while successful I still found rather simplistic. Wishing to further improve the complexity of my AI player and after some more research online I came across the idea of implementing a neural network as the scoring function within the MinMax algorithm. In particular this method, first proposed by Fogel in his work on the checkers playing bot Blondie24 (https://en.wikipedia.org/wiki/Blondie24), showed that such an implantation led to an expert player capable of beating most humans. Being new to both coding and machine learning I decided that rather than just finding a library that implements neural networks behind the scenes I would implement my own from scratch, with the help of both Wikipedia and stackexchange. The result as shown here is capable of not only playing checkers but also constant improvement though either interaction with a human opponent or playing against itself/a second neural network.

the file NeuralNetPlayer.net contains an example network that while not the best player ever is capable of playing checkers. inorder to use it it needs to be copied to the \bin directory (I'm using Visual Studio and Git so my full path is C:\Users\Alan\Source\Repos\Checkers\Checkers\bin) this is one level higher than the checkers.exe file generated when compiled in visual studio.

About

Aim to write a fully working game of checkes using MinMax

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages