First steps of the game was to initially design the maze in paper. Coming from a 10x10 grid, and then figure out different ways to go through each level, thinking of walls and obstacles:
Grid
Each level is a nested array with 10 other arrays in themn. 0s represent "walkable" space, whilst 1s represent walls. The 2 is supposed to trigger a new level. After this grid is written, there has to be way to render it according to the level, so the grid is drawn everytime always depending on the level and, therefore, it's position in the array.
Player
The player is built with 2 properties - it's position in the row and column. The player does not have a huge amount of functions: mostly movement functions that define how it moves, where it can move, and what happens when it either is seen by a guard, or reaches a stair (2s in the grid). Reaching the stairs triggers a new level, getting caught, ends the game and forces you to start over.
Guards
The guards are the real trouble makers in this game. There are guards on every level, each of them with its own properties. So the idea was to first create a guard Class and from that point on figure out movements, rotations, sizes, etc. The guards have a different "size". Originally they were thought with the same size of the player - 100x100, but then I would have to figure out how to get a "field of view" to them. Creating a guard with a light already in the image turned out to be the easiest, most sensible solution for the time restraint. Here, it is important to define this Object's dimensions, and it's action area, because it's important for whoever is playing the game to immediately know where the thief can go without getting caught.
Special Thanks
To the people that helped this game be live right now - the Ironhack teaching staff - Montasar, Svenja, Bruno, Min, and Pierre - the colleagues that gave me a hand either by brainstorming, or providing feedback, Catarina Rosa, for designing the levels and the characters and for Tonnyy * for letting me use the 8bit track in the game.