Skip to content

A Gomoku-Playing AI. Using Minimax search with Alpha-Beta pruning.

Notifications You must be signed in to change notification settings

chandl/AI-Gomoku

Repository files navigation

-------------------------------------------
-------- Gomoku Adversarial Search --------
-------------------------------------------
----------      Created By:       ---------
----------   Chandler Severson    ---------
----------           &            ---------
----------     Janelle Bakey      ---------
-------------------------------------------

1. General Information
    This program is an example of Adversarial Search techniques.
Specifically MiniMax search with Alpha-Beta pruning. This program
was designed specifically to work with the Gomoku server program
that can be found here: https://github.com/wfi/gomoku. The server
program is written in Racket and this program in Java. This project
was made for CS455 - Artificial Intelligence, Southern Oregon University,
Winter 2017.

2. Running the Program
    In order to start the program, first open the GomokuServer
found in the link above, and then run GomokuClient like 'java GomokuClient'.
After connecting, you can start this agent again to make it play against itself
or use the ManualPlayer racket class to play against the agent.

3. Acknowledgements
    Information about Gomoku and the "threats" posed by moves was
found here: https://www.mimuw.edu.pl/~awojna/SID/referaty/Go-Moku.pdf.
The algorithms were implemented based on pseudocode in
Artificial Intelligence, A Modern Approach - Third Edition (Russel & Norvig).

4. Other Ideas/Comments
    When implementing the Heuristic evaluation function, we overlooked a few things,
causing some logic issues later in development. In addition, the actual move search
runs quite slow, sometimes up to 5-10sec to find an optimal move. We won't be winning
any tournaments with this one. (Feb 20, 2017: Our AI actually won the class tournament!!)

Releases

No releases published

Packages

No packages published

Languages