Project for the Algorithms and Data Structures course at the University of Bologna (A.Y. 2020-2021).
MNK Game is a generalized version of tic-tac-toe with a M x N grid and the objective of aligning K elements.
The task is to implement a resource efficient algorithm able to play the game (potentially any configuration) in an optimal way.
RandomPlayer plays completely random moves.
QuasiRandomPlayer plays randomly but is able to detect a single-move win or loss.
OurPlayer the implementation for the project.
mnkgame contains the base MNK Game program provided for the project.
player contains the implementation of the players (Note: RandomPlayer and QuasiRandomPlayer were already provided).
From the project root folder, run:
javac mnkgame/*.java
javac player/*.java
java mnkgame.MNKGame [M] [N] [K] player.[Player]
java mnkgame.MNKGame [M] [N] [K] player.[Player1] player.[Player2]
Text based game that only shows the result
java mnkgame.MNKPlayerTester [M] [N] [K] player.[Player1] player.[Player2]
-v Verbose
-t [n] Timeout of [n] seconds to select the next move
-r [n] Play [n] rounds