One of my assignments had me create an implementation of the A* algorithm in C++. The requirements were that it should be visually represented and easy to edit the scenario. The simulation represents an astronaut(gray) that needs to find and pick up a star(yellow), carry it to and sell it at a trading post(red), and finally return to their ship(purple). While carrying the star, the astronaut's stamina depletes and if it reaches zero they need to drop the star to go and rest in their spaceship before they can continue.
The biggest challenge with this project was researching and implementing A* itself. I was mainly basing my A* implementation on a Unity project with the algorithm implemented from the online educator Code Monkey. Reading and breaking down how the C# scripts worked to then try and implement them in C++ required me to truly familiarize myself with the algorithm while it also practiced my ability to read and understand someone elses code. Another challenge was controlling the flow of the simulation. The astronaut was controlled with a simple FSM to execute the proper behavior of when to walk where. Due to it being possible to edit the start conditions of the simulation, some edge cases had to be taken care of such as the astronaut spawning with the star on the trading post, or simply when there is no valid path.
A*-vation is common in a cut-throat business