I solved the extensions from 1 to 5. I had a look at others and came across some ideas but no time to implement them.
NOTE: I found there are somewhere can be refactored to be more structural and extendable, but I paid more attention on solving the problems directly rather than designing good interfaces.
make build
The build output is a binary executable file located under directory target.
make test
Show help information:
./target/traffic-controller -h
Passing arguments from command line:
./target/traffic-controller --n 10 --e 20 --s 4 --w 1
Loading data from CSV files:
./target/traffic-controller --input ./data/input.csv
make clean