Main feature:
- Added functionality to randomly generate a maze before the solver
solves it.
Fixes:
- Add a public method in the Cell class called wall_exists() that
returns true if a given cell wall exists (false otherwise).
Refactors:
- Added an enum type called CellWallLabel for labelling the four cell
walls.
- Added a draw() function in the CellWall class to reduce repeated code.
- Move the custom exceptions to errors.py
Tests:
- Add tests for the custom exceptions.
CI:
- Added a workflow for Forgejo Actions.
- Add an entrance and exit to the maze. The entrance will always
be on the top left and the exit will always be on the bottom
right.
- Add a simple GitHub actions workflow to run the Python tests.
Optionally pass in the reference of the Window to the Maze and
Cell classes, and only draw the graphics if the reference exists.
Use a single underscore instead of the double underscore for private
Class members.