Skip to content
A Gomoku-Playing AI. Using Minimax search with Alpha-Beta pruning.
Java
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
GameState.java
GomokuClient.java
GomokuConnector.java
MoveSearch.java
README
SearchTester.java
severson-bakey-gomoku.docx

README

-------------------------------------------
-------- 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!!)
You can’t perform that action at this time.