Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 10x 10x 10x 10x 10x 10x 10x 10x 24x 24x 24x 24x 2x 11x 2x 9x 14x 14x 14x 14x 36x 36x 36x 6x 6x 36x 6x | import BusdriverService from "./BusdriverService.js";
class App {
constructor(properties) {
this.maxSteps = properties.maxSteps;
this.allRoutes = properties.allRoutes;
this.steps = 1;
this.initialize();
}
initialize() {
this.service = new BusdriverService({ allRoutes: this.allRoutes });
this.service.busdriverFactory();
this.handleGossipExchange();
this.reportIfSuccessful();
}
handleGossipExchange() {
this.service.calculateNumberOfDriversAtStation();
this.service.exchangeGossipIsPossibleAtStations();
this.service.createStationsForGossipExhange();
this.service.getDriversHaveFullGossipKnowledge();
}
run() {
for (let i = 1; i < this.maxSteps; i++) {
if (this.reportIfSuccessful()) {
break;
}
this.nextStep();
}
}
nextStep() {
this.steps++;
this.service.allDriveToNextStation();
this.handleGossipExchange();
this.reportIfSuccessful();
}
reportIfSuccessful() {
const isFinished = () => {
return this.service.isGossipKnowledgeComplete();
};
const reportResult = () => {
console.log("Finished in " + this.steps + " steps");
return (this.resultInSteps = this.steps);
};
if (isFinished()) {
return !!reportResult();
}
}
}
export default App;
|