This is a web application to play the game Quantik by the publisher Gigamic. It is an abstract strategy game, where on their turn each player will place a piece on an empty space of the board, respecting one single rule: They are not allowed to place a shape in a row, column, or quadrant in which their opponent has a piece of the same shape. The first player to place the fourth different shape in a row, column, or quadrant wins the game. If a player cannot place any of their remaining pieces when it is their turn, they immediately lose the game. Note that we exchanged the original three-dimensional shapes with two-dimensional ones to to make them easier to display.
This project was developed by Lorenz Killer as a bachelor thesis for computer science, supervised by Oswin Aichholzer, at Graz University of Technology. The webapp is based on a project by Christoph Reinisch.
The server is written in Python, using the Flask framework. The client is written in HTML and JavaScript, using jQuery. Compatibility was tested in Chrome and Mozilla Firefox running on Linux, Android and Windows. Nevertheless the application should be compatible with any browser like Microsoft Edge.
The AI of this game is based on an exhaustive evaluation of all possible game positions stored in a large data base. For each possible board its status (current player win, opponent player win) is known, as well as as the number of half moves needed to force a win with optimal play from this board. A green even number shows in how many half-moves the game can be won by taking this move (assuming optimal play of the opponent, otherwise you can win faster). A red odd number shows the maximum number of half-moves you can delay the victory of the opponent (again assuming optimal play of the opponent). If a blue "D" is displayed instead of a number, this means neither player can force a win and the game will end in a draw if both players keep playing optimally.