Our enviroment is built on numpy, manipulating an array representing the game board and secondary arrays representing each piece. It has the ability to render to the screen or record a video of the AI using OpenCV and Pillow (changed from an earlier version which used pygame)
The AI is currently trained on a standard 10x20 board, but the environment supports any reasonable sized board (as the board size gets wider, the time each step takes is increased proportionally)
Our AI's hyperparameters are as follows