Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Dashboard implements Comparable
- {
- private int odometer;
- private int speedometer;
- private boolean checkEngine;
- public Dashboard()
- {
- odometer = 0;
- speedometer = 0;
- checkEngine = false;
- }
- public Dashboard(int milesTravelled, int speed)
- {
- boolean checkMiles = false;
- boolean checkSpeed = false;
- if(milesTravelled >= 0 && milesTravelled <= 99999)
- {
- odometer = milesTravelled;
- checkMiles = true;
- }
- else
- {
- odometer = 0;
- }
- if(speed >= 0 && speed <= 100)
- {
- speedometer = speed;
- checkSpeed = true;
- }
- else
- {
- speedometer = 0;
- }
- if(checkMiles == true && checkSpeed == true)
- {
- checkEngine = false;
- }
- else
- {
- checkEngine = true;
- }
- }
- public void accelerate()
- {
- this.speedometer++;
- if(this.speedometer > 100)
- {
- this.speedometer = 0;
- this.checkEngine = true;
- }
- }
- public void drive(int numMinutes)
- {
- double mph = (double)this.speedometer/60;
- double totalMiles = mph * numMinutes;
- this.odometer += (int)totalMiles;
- if(this.odometer > 99999)
- {
- this.odometer = 0;
- this.checkEngine = true;
- }
- }
- public String toString() {
- String ret = "Speedometer: " + speedometer + " MPH";
- ret += "\nOdometer: " + String.format("%05d", odometer);
- if(checkEngine) {
- ret += "\nCheck Engine: On";
- } else {
- ret += "\nCheck Engine: Off";
- }
- return ret;
- }
- public int compareTo(Object other)
- {
- Dashboard temp = (Dashboard) other;
- int prt = 0;
- if(this.odometer < temp.odometer)
- {
- prt = -1;
- }
- else if(this.odometer > temp.odometer)
- {
- prt = 1;
- }
- else if(this.odometer == temp.odometer)
- {
- if(this.speedometer < temp.speedometer)
- {
- prt = -1;
- }
- else if(this.speedometer > temp.speedometer)
- {
- prt = 1;
- }
- else if(this.speedometer == temp.speedometer)
- {
- if(this.checkEngine == false && temp.checkEngine == true)
- {
- prt = -1;
- }
- else if(this.checkEngine == true && temp.checkEngine == false)
- {
- prt = 1;
- }
- else if(this.checkEngine == true && temp.checkEngine == true)
- {
- prt = 0;
- }
- }
- }
- return prt;
- }
- public String race(Dashboard other, int acc1, int acc2)
- {
- Dashboard temp2 = (Dashboard)other;
- String prt = "";
- int a = acc1;
- int b = acc2;
- for(int c = 0; c < acc1; c++)
- {
- this.accelerate();
- }
- for(int d = 0; d < acc2; d++)
- {
- temp2.accelerate();
- }
- if(this.checkEngine == true && temp2.checkEngine == false)
- {
- prt = "First car stalled out!\n\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nCar 2 has won the race!";
- }
- else if(this.checkEngine == false && temp2.checkEngine == true)
- {
- prt = "Second car stalled out!\n\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nCar 1 has won the race!";
- }
- else if(this.checkEngine == false && temp2.checkEngine == false)
- {
- if(this.speedometer > temp2.speedometer)
- {
- prt = "\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nCar 1 has won the race!";
- }
- else if(this.speedometer == temp2.speedometer)
- {
- prt = "\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nIt's a tie!";
- }
- else if(this.speedometer < temp2.speedometer)
- {
- prt = "\n" + this.toString() + "\n\n" + temp2.toString() + "\nCar 2 has won the race!";
- }
- }
- else if(this.checkEngine == true && temp2.checkEngine == true)
- {
- prt = "First car stalled out! \nSecond car stalled out!\n\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nIt's a tie!";
- }
- return prt;
- }
- public String difference(Dashboard other)
- {
- Dashboard temp3 = (Dashboard) other;
- String prt = "";
- int time = 0;
- double difference = Math.abs(this.odometer - temp3.odometer);
- if(this.odometer > temp3.odometer)
- {
- return "Second car will need to drive for " + (int)((double)difference / ((double)temp3.speedometer / 60)) + " minutes to catch first car.";
- } else {
- return "First car will need to drive for " + (int)((double)difference / ((double)this.speedometer / 60)) + " minutes to catch second car.";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement