package de.hems.trafficsim; import java.util.Random; public class Vehicle { protected int id; protected float position; protected float curVelocity; protected float maxVelocity; protected float brakeProp; protected float trackLength; public Vehicle(int id, int position, float maxVelocity, float brakeProp, float trackLength) { this.id = id; this.position = position; this.maxVelocity = maxVelocity; this.brakeProp = brakeProp; this.curVelocity = 0; this.trackLength = trackLength; } public float getPosition() { return position; } public float getCurVelocity() { return curVelocity; } public float getMaxVelocity() { return maxVelocity; } public void updateVelocity(float distanceForerunner) { Random random = new Random(); float r = random.nextFloat(); if (curVelocity < maxVelocity) { curVelocity = curVelocity + 1; } if (r < brakeProp && curVelocity > 0) { curVelocity = getCurVelocity() - 1; } if (curVelocity > distanceForerunner) { curVelocity = distanceForerunner; } } public void timeElapse(float timeStep) { position = (position + curVelocity) % this.trackLength; } }