đŠī¸ Fly-in â Drone System Rules¶
đ Zone System¶
Every map is composed of connected zones.
Each zone belongs to one of the following types:
| Zone Type | Description | Movement Cost | Special Rules |
|---|---|---|---|
đĸ normal |
Default zone type | 1 turn |
- Default capacity: 1 drone- Drones may enter, leave and wait |
đ´ restricted |
Sensitive or dangerous zone | 2 turns |
- Drone occupies the connection during transit - Drone MUST arrive next turn - Cannot stop or wait mid-connection - Movement should not start if destination becomes unavailable |
đĄ priority |
Preferred routing zone | 1 turn |
- Should be prioritized during pathfinding - Behaves like a normal zone regarding occupancy |
âĢ blocked |
Inaccessible zone | â | - Drones cannot enter - Drones cannot cross - Any route using it is invalid |
đĻ Zone Capacity Rules¶
| Rule | Description |
|---|---|
| Default capacity | Every zone supports 1 drone unless specified otherwise |
| Custom capacity | Zones may define max_drones=N |
| Capacity restriction | A drone cannot enter a full zone |
| Simultaneous occupancy | Allowed only if capacity permits |
Example:
hub: corridorA 4 3 [max_drones=2]
Meaning:
Up to 2 drones may occupy the zone simultaneously.
â Special Zones¶
| Zone | Special Behaviour |
|---|---|
start_hub |
Unlimited drones may occupy it initially |
end_hub |
Unlimited drones may arrive and delivered drones stop being tracked |
đ Connection Rules¶
Connections define possible movement paths.
Example:
connection: A-B
âī¸ Bidirectional Connections¶
All connections are:
- bidirectional
Meaning:
A-B
allows:
- A â B
- B â A
đĢ Invalid Connections¶
Connections are invalid if:
- one zone does not exist
- duplicated connection exists
- syntax is invalid
The following are duplicates:
A-B
B-A
đĻ Connection Capacity¶
Connections may define:
[max_link_capacity=N]
Example:
connection: A-B [max_link_capacity=2]
Meaning:
Only 2 drones may traverse this connection simultaneously.
đ¨ Connection Restrictions¶
A drone cannot use a connection if:
- its capacity would be exceeded
- another movement rule would be violated
âąī¸ Turn System¶
The simulation is turn-based.
At every turn, each drone may:
- move
- wait
- continue restricted-zone transit
đļ Movement Costs¶
| Destination Zone | Cost | Notes |
|---|---|---|
normal |
1 turn |
Immediate movement |
priority |
1 turn |
Should be preferred during pathfinding |
restricted |
2 turns |
Drone occupies connection during transit |
blocked |
â | Cannot be entered |
đĢ Restricted Movement Rules¶
Restricted movement behaves differently from normal movement.
Turn 1¶
The drone enters transit state.
Example:
D1-A-B
Turn 2¶
The drone MUST arrive at destination.
The drone cannot:
- cancel movement
- wait on the connection
- pause transit
đ Simultaneous Movement Rules¶
Multiple drones may move during the same turn.
BUT:
- zone capacities must be respected
- connection capacities must be respected
- collisions must not happen
đ¨ Occupancy Rules¶
Two drones cannot:
- enter the same zone simultaneously
unless:
max_drones > 1
đ Freeing Space¶
When a drone leaves a zone:
- that space becomes available during the same turn
This means movement scheduling matters.
đ§ Pathfinding Logic Rules¶
The routing system must consider:
- shortest paths
- movement costs
- restricted zones
- priority zones
- occupancy limits
- connection limits
- simultaneous drone movement
đĢ Invalid Drone Behaviour¶
A drone must never:
- enter blocked zones
- exceed zone capacity
- exceed connection capacity
- remain inside restricted transit longer than allowed
- teleport
- skip turns illegally
- use undefined connections
đ Output Rules¶
Every line represents:
1 simulation turn
Format:
D<ID>-<destination>
Example:
D1-roof1 D2-corridorA
đĢ Restricted Transit Output¶
While travelling toward restricted zones:
D<ID>-<connection>
may be displayed.
Example:
D1-A-B
đ End Conditions¶
Simulation ends only when:
- every drone reaches
end_hub
Delivered drones:
- are removed from active simulation tracking.
đ¯ Optimization Goal¶
Main objective:
Minimize total simulation turns
The algorithm should:
- maximize throughput
- reduce waiting
- avoid deadlocks
- distribute drones efficiently across paths