A first-year Epitech (Montpellier) pathfinding project developed in 1 week by a 3-developer team.
The program reads a graph description from standard input and simulates the movement of multiple robots from a start room to an end room while printing each generation of moves.
- School: Epitech Montpellier
- Year: 1st year
- Team size: 3 developers
- Timebox: 1 week
- Language: C
- Parses a map composed of:
- Number of robots
- Rooms with coordinates
- Tunnels between rooms
- Validates input integrity (start/end rooms, room format, connectivity constraints)
- Computes room weights from the end room to guide robot movement
- Simulates robot moves generation by generation
- Prints:
- Parsed input summary
- Move list in
P<id>-<room>format
From the repository root:
makeThis builds:
- binary:
./amazed - internal libraries from
lib/myandlib/linked_list
Notes:
- The default compiler in this project is
epiclang. - To force
gcc, build with:
make CICD=1The program reads input from stdin:
./amazed < map.txtor
cat map.txt | ./amazedReturn codes:
0on success84on error
Expected input structure:
- First line: positive integer number of robots
- Room definitions:
name x y - Commands:
##startbefore the start room definition##endbefore the end room definition
- Tunnel definitions:
room1-room2 - Comments:
- Lines beginning with
#are comments ##startand##endare special commands
- Lines beginning with
Important constraints enforced by the parser:
- Exactly one start room and one end room
- Room names must be alphanumeric
- Tunnel lines must contain exactly one
- - Duplicate room coordinates are rejected
- Number of robots must be strictly positive
The program prints parsed data, then moves:
#number_of_robots
<value>
#rooms
...
#tunnels
...
#moves
P1-roomA P2-roomB
P1-roomC
...
Each move token uses this format:
P<robot_number>-<room_name>
Criterion unit tests are included.
Run tests:
make tests_runRebuild and rerun tests:
make tests_resrc/: core logic (parsing, validation, path weighting, simulation)include/: headers and project structureslib/: custom libraries (my, linked list)tests/: Criterion unit tests
Developed by a 3-person Epitech team in an intensive 1-week sprint.
If you are a recruiter or reviewer: this project demonstrates C fundamentals, parsing, custom data structures, graph traversal logic, and collaborative delivery under a short deadline.