-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
executable file
·36 lines (28 loc) · 907 Bytes
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const settings = require('./settings');
const io = require('./io');
const timer = require('./timer');
const rides = require('./rides');
const vehicles = require('./vehicles');
const score = require('./score');
settings.input = process.argv[2];
io.parseFile();
rides.sortByStart();
do {
for(vehicle of vehicles.getVehicles()) {
if(!vehicle.full) {
let bestRide = vehicle.searchBestRide(vehicle);
if(bestRide === null) {
vehicle.setFull();
} else {
vehicle.assignRide(bestRide);
}
}
}
} while (vehicles.availableVehicles > 0 && rides.unassignedRides > 0);
for(let t = 0; t < settings.T; t++) {
vehicles.getVehicles().forEach(vehicle => vehicle.checkPosition());
vehicles.getVehicles().forEach(vehicle => vehicle.doStep());
timer.time++;
}
console.log("Score: " + score.getScore());
io.exportVehicles("./output/" + settings.filename + ".out");