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 brakeProb; protected float trackLength; public Vehicle(int id, int position, float maxVelocity, float brakeProb, float trackLength) { this.id = id; this.position = position; this.maxVelocity = maxVelocity; this.brakeProb = brakeProb; this.curVelocity = 0; this.trackLength = trackLength; } public float getPosition() { return position; } public float getCurVelocity() { return curVelocity; } public float getMaxVelocity() { return maxVelocity; } public void setBrakeProb(float brakeProb) { this.brakeProb = brakeProb; } public void setMaxVelocity(float maxVelocity) { this.maxVelocity = maxVelocity; } public void updateVelocity(float distanceForerunner) { Random random = new Random(); float r = random.nextFloat(); if (curVelocity < maxVelocity) { curVelocity = curVelocity + 1; } if (r < brakeProb && curVelocity > 0) { curVelocity = curVelocity - 1; } if (curVelocity > distanceForerunner) { curVelocity = distanceForerunner; } } public void timeElapse() { position = (position + curVelocity) % this.trackLength; } }