MiniGo is a simple java application that allows up to two people to play the game of Go (on a 9*9 grid) together on the same computer.
The two player mode fully implements the rules of the game of go, including capture, liberties, group connection, kô (the same sequence cannot be played twice in a row), eyes, etc. In addition, a player can request the right to take back his last move, and if the permission is granted by the other player, the game goes back one step and the player who took back his move can play again. For this purpose, the game stores the current state of the board in a matrix, and buffers that matrix to be able to go back one step up on rollback.
The client also features extra functions, such as a save and load function — especially useful in single player mode — as well as an automated late game point counter. After both player have passed, the game automatically tags territory belonging to both players. If some incorrect attribution has been made, or if some stones are considered dead, the players can then click on the said stones to mark them as dead: the computer will adjust calculations accordingly.
The solo player mode allows one player to practice by himself and study past games using the load game function. In this game mode, the player can chose pick a color and place as many stones as he wishes. Though this is intended as a practice tool, an artificial intelligence was originally planned (and partially implemented). However, due to a lack of time, this functionality was finally not released.
This project was coded entirely by me over the course of a few months, from January 2016 to May of the same year. A release is available on my GitHub, featuring the functionalities described above. Feel free to have a try!