Skip to content

๐Ÿ›ฉ๏ธ 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