\section{Technical Background} The technical background is all the research related to the programming part of this bachelor project. The programming language used in this project is a mixture of C and C++, for this part, the course of Systems Programming taught by Prof. Carzaniga during the third semester. Then came the study of the starting point of the project, which was divided in the logic itself and the framework used to display the state of the simulation on the screen. \subsection{Original project} Before starting to write any code, it was necessary to study carefully the original project. The starting point of chosen for this specific project was the last commit on the \texttt{c++-port} branch. The reason for this choice is that the project originally started fully in C (which is still the case for the \texttt{main} branch) and C++ offers more functionalities that help for a smoother development process. \subsection{Cairo}