package de.hems.trafficsim; import java.util.ArrayList; import java.util.List; import java.util.Observable; public class Track extends Observable { protected List vehicles; public List getVehicles() { return vehicles; } public Track(int numberVehicles) { this.vehicles = createVehiclesList(numberVehicles); } protected List createVehiclesList(int numberVehicles){ List result = new ArrayList<>(); for(int i=0;i= vehicles.size()) { forerunnerIndex -= vehicles.size(); } Vehicle forerunner = vehicles.get(forerunnerIndex); float distanceForerunner = forerunner.getPosition() - v.getPosition() - 1; if(distanceForerunner < 0.0){ distanceForerunner += 50; } v.updateVelocity(distanceForerunner); } for(Vehicle v: vehicles){ v.timeElapse(50); } this.setChanged(); this.notifyObservers(this); this.clearChanged(); } }