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