/* * Copyright (c) 2015 Camil Staps */ package com.camilstaps.route66; import OO14route66.Car; import OO14route66.Model; import java.util.Random; /** * * @author camilstaps */ public class Driver implements Runnable { private final Car car; private final Random r; private boolean running; private int delay; public Driver(Car car) { this.car = car; r = new Random(); } public void setRunning(boolean value) { running = value; } public void setDelay(int value) { delay = value; } @Override @SuppressWarnings("empty-statement") public void run() { running = true; while (true) { while (!running || !Overviewer.getInstance().isSafeLocation(car, car.getNewLocation())); car.step(); pause(); } } protected void pause() { try { int bonus = 0; if (Math.abs((System.currentTimeMillis() / 1000) % Model.NUMBEROFCARS - car.getNumber()) < 2) { bonus = -50; } Thread.sleep(Math.abs(r.nextInt(50) + delay + bonus)); } catch (InterruptedException ex) {} } }