main.py
: initialization, main logic and while loopmodels.py
: stores all classes and helper functionssimulation.py
: pygame contents and functions used to visualize the simulationstatuses.py
: stores helpful variables that are used to track the status of planes and runways
The system must:
- Keep track of all airplanes’ positions (latitude, longitude) within the traffic control zone.
- Queue airplanes for landing based on time of arrival into the traffic control zone.
- Command airplanes to go for landing (when it is their turn) to one of two runways (can be scaled to many).
- Otherwise command airplanes to fly in a circular 'holding pattern' which is a circle with a radius of 1km around a suitable point.
- Never allow for planes to come within 100m of each other, whether flying or landing.
- The traffic control zone is a circle of radius 10km (can be variable).
View a comprehensive document detailing the project scope, goals, and considerations here.
NOTE: All demo media have the planes moving at 2-4x regular speed.