feat: adding vehicle classes and main program
The classes are on Vehicles folder and being used in Main.java file.
This commit is contained in:
174
src/Vehicles/Sport.java
Normal file
174
src/Vehicles/Sport.java
Normal file
@@ -0,0 +1,174 @@
|
||||
package Vehicles;
|
||||
|
||||
public class Sport extends Vehicle {
|
||||
private int topSpeed;
|
||||
|
||||
public enum GearNumbers {
|
||||
R,
|
||||
N,
|
||||
GEAR_1,
|
||||
GEAR_2,
|
||||
GEAR_3,
|
||||
GEAR_4,
|
||||
GEAR_5,
|
||||
GEAR_6
|
||||
}
|
||||
|
||||
private GearNumbers gear;
|
||||
|
||||
public Sport(String make, String model, int year, int topSpeed) {
|
||||
super(make, model, year);
|
||||
this.topSpeed = topSpeed;
|
||||
this.typeOfEngine = getManualEngineType();
|
||||
this.doors = 2;
|
||||
this.gear = this.setGear(0);
|
||||
}
|
||||
|
||||
private GearNumbers setGear(int gear) {
|
||||
switch (gear) {
|
||||
case -1:
|
||||
return GearNumbers.R;
|
||||
case 0:
|
||||
return GearNumbers.N;
|
||||
case 1:
|
||||
return GearNumbers.GEAR_1;
|
||||
case 2:
|
||||
return GearNumbers.GEAR_2;
|
||||
case 3:
|
||||
return GearNumbers.GEAR_3;
|
||||
case 4:
|
||||
return GearNumbers.GEAR_4;
|
||||
case 5:
|
||||
return GearNumbers.GEAR_5;
|
||||
case 6:
|
||||
return GearNumbers.GEAR_6;
|
||||
default:
|
||||
return GearNumbers.N;
|
||||
}
|
||||
}
|
||||
|
||||
public double getTopSpeed() {
|
||||
if (this.gear == GearNumbers.N || this.gear == GearNumbers.R) {
|
||||
return 0;
|
||||
}
|
||||
switch (this.gear) {
|
||||
case GEAR_1:
|
||||
return topSpeed * 0.2;
|
||||
case GEAR_2:
|
||||
return topSpeed * 0.35;
|
||||
case GEAR_3:
|
||||
return topSpeed * 0.5;
|
||||
case GEAR_4:
|
||||
return topSpeed * 0.65;
|
||||
case GEAR_5:
|
||||
return topSpeed * 0.8;
|
||||
case GEAR_6:
|
||||
return topSpeed;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String forward() {
|
||||
if (this.gear == GearNumbers.N) {
|
||||
this.changeGearUp();
|
||||
} else if (this.gear == GearNumbers.R) {
|
||||
this.gear = this.setGear(1);
|
||||
}
|
||||
return "The sport vehicle is zooming forward at high speed!";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String reverse() {
|
||||
if (this.gear != GearNumbers.R) {
|
||||
this.gear = this.setGear(-1);
|
||||
}
|
||||
return "The sport vehicle is reversing quickly!";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String stop() {
|
||||
if (this.gear != GearNumbers.N) {
|
||||
this.setGearToNeutral();
|
||||
}
|
||||
return "The sport vehicle screeches to a halt!";
|
||||
}
|
||||
|
||||
public String drift() {
|
||||
if (this.gear == GearNumbers.N || this.gear == GearNumbers.R) {
|
||||
return "Cannot drift while in Neutral or Reverse gear!";
|
||||
}
|
||||
return "The sport vehicle is drifting around the corner!";
|
||||
}
|
||||
|
||||
public String nitroBoost() {
|
||||
if (this.gear == GearNumbers.N || this.gear == GearNumbers.R) {
|
||||
return "Cannot activate nitro boost while in Neutral or Reverse gear!";
|
||||
}
|
||||
if (this.gear != GearNumbers.GEAR_6) {
|
||||
this.gear = this.setGear(6);
|
||||
}
|
||||
return "The sport vehicle activates nitro boost for extra speed!";
|
||||
}
|
||||
|
||||
public void changeGearUp() {
|
||||
switch (this.gear) {
|
||||
case R:
|
||||
this.gear = this.setGear(0);
|
||||
break;
|
||||
case N:
|
||||
this.gear = this.setGear(1);
|
||||
break;
|
||||
case GEAR_1:
|
||||
this.gear = this.setGear(2);
|
||||
break;
|
||||
case GEAR_2:
|
||||
this.gear = this.setGear(3);
|
||||
break;
|
||||
case GEAR_3:
|
||||
this.gear = this.setGear(4);
|
||||
break;
|
||||
case GEAR_4:
|
||||
this.gear = this.setGear(5);
|
||||
break;
|
||||
case GEAR_5:
|
||||
this.gear = this.setGear(6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public GearNumbers getGear() {
|
||||
return this.gear;
|
||||
}
|
||||
|
||||
public void changeGearDown() {
|
||||
switch (this.gear) {
|
||||
case GEAR_6:
|
||||
this.gear = this.setGear(5);
|
||||
break;
|
||||
case GEAR_5:
|
||||
this.gear = this.setGear(4);
|
||||
break;
|
||||
case GEAR_4:
|
||||
this.gear = this.setGear(3);
|
||||
break;
|
||||
case GEAR_3:
|
||||
this.gear = this.setGear(2);
|
||||
break;
|
||||
case GEAR_2:
|
||||
this.gear = this.setGear(1);
|
||||
break;
|
||||
case GEAR_1:
|
||||
this.gear = this.setGear(1);
|
||||
break;
|
||||
case N:
|
||||
this.gear = this.setGear(-1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void setGearToNeutral() {
|
||||
this.gear = GearNumbers.N;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user