This project is an implementation of search algorithms for a maze game. The game is implemented using the pygame
library.
The code was developed in Python 3.10.
The following algorithms are implemented:
- Breadth First Search
- Depth First Search
- Greedy Search
- Iterative Deepening Search
- A* Search
- Weighted A* Search
- Genetic Algorithm
The following heuristics are implemented:
- Manhattan Distance
- Chebyshev Distance
- Euclidean Distance
The code's arquitecture is based on the MVC (Model-View-Controller) pattern. The code is structured as follows:
/algorithms/
: The search algorithms/assets/
: The assets used in the program/controller/
: The controller classes/menu/
: The menu classes/model/
: The model classes/view/
: The view classes
The code can be run from the command line using the following command:
python3 main.py [--statistics]
The dependencies needed to run the code are present in the requirements.txt
file. They can be installed using the following command:
pip3 install -r requirements.txt
The --statistics
flag can be used to print statistics about the search. The statistics are outputed to a results.xlsx
file.
The output of the program is the game itself. The visualization is done using the pygame
and pygame_menu
libraries.
- Lia Vieira ([email protected])
- Marco André([email protected])
- Ricardo Matos([email protected])