From a8281523e2bbee4a1b4688f175896fe9c6b30c55 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 28 May 2015 23:50:19 +0200 Subject: This does seem to work a bit... kindof... --- Week14 Route 66/src/OO14route66/Car.java | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'Week14 Route 66/src/OO14route66/Car.java') diff --git a/Week14 Route 66/src/OO14route66/Car.java b/Week14 Route 66/src/OO14route66/Car.java index 4448a27..6ebb863 100644 --- a/Week14 Route 66/src/OO14route66/Car.java +++ b/Week14 Route 66/src/OO14route66/Car.java @@ -1,5 +1,6 @@ package OO14route66; +import com.camilstaps.route66.Driver; import java.awt.Color; import java.awt.Graphics; import java.util.Random; @@ -26,25 +27,47 @@ public class Car private int location; // current location on the road private final Color color; // color of this car private final Random random; // here to ensure that every car gets a new + private final Driver driver; + private final Model model; /** * The constructor * @param number of the car */ - public Car(int number) { + public Car(int number, Model model) { this.number = number; random = new Random(); speed = MINCARSPEED + random.nextInt(MAXCARSPEED - MINCARSPEED + 1); direction = Direction.intToDirection(number); location = RoadView.WINDOWSIZE - 2 - (number/Model.DIRECTIONS) * (CARLENGTH + MINCARSPACE); color = carColors[number % carColors.length]; + driver = new Driver(this); + this.model = model; + } + + public Driver getDriver() { + return driver; + } + + public Direction getDirection() { + return direction; + } + + public int getNumber() { + return number; + } + + public int getNewLocation() { + return (location + speed) % RoadView.WINDOWSIZE; } /** * move this car one step */ public void step() { - location = (location + speed) % RoadView.WINDOWSIZE; + location = getNewLocation(); + Regelaar.getInstance().setLocation(this, location); + model.update(); } /** -- cgit v1.2.3