-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRii.java
More file actions
135 lines (122 loc) · 5.25 KB
/
Copy pathRii.java
File metadata and controls
135 lines (122 loc) · 5.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import java.util.Scanner;
public class Rii {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("\n \n");
System.out.println("********************************************");
System.out.println("* Welcome to the Single-Player Racing Game *");
System.out.println("********************************************");
System.out.println("\n");
CarFactory carFactory = new CoupeCarFactory();
TrackFactory trackFactory = new TrackFactoryImpl();
System.out.println("----------------");
System.out.println("| Choose a car |");
System.out.println("----------------");
System.out.println("1. ToyotaGR86");
System.out.println("2. SubaruBRZ");
System.out.println("3. PorscheBoxster");
System.out.println("4. Ferrari812");
int carChoice = scanner.nextInt();
System.out.println("...............................................");
System.out.println("\n");
Car chosenCar;
if (carChoice == 4) {
carFactory = new RoadsterCarFactory();
}
System.out.println("-------------------------");
System.out.println("| Choose an engine type |");
System.out.println("-------------------------");
System.out.println("1. V6 Engine");
System.out.println("2. V8 Engine");
System.out.println("3. V12 Engine");
int engineChoice = scanner.nextInt();
System.out.println("...............................................");
System.out.println("\n");
EngineBehavior chosenEngine;
switch (engineChoice) {
case 1:
chosenEngine = new V6Engine();
break;
case 2:
chosenEngine = new V8Engine();
break;
case 3:
chosenEngine = new V12Engine();
break;
default:
throw new IllegalArgumentException("Invalid engine choice");
}
System.out.println("Do you want to add a turbocharger? (yes/no)");
String turboChoice = scanner.next().toLowerCase();
boolean addTurbocharger = "yes".equals(turboChoice);
chosenCar = carFactory.createCar(chosenEngine, addTurbocharger);
if (addTurbocharger) {
System.out.println("-------------------------------");
System.out.println("| Choose a turbocharger type: |");
System.out.println("-------------------------------");
System.out.println("1. Alpine");
System.out.println("2. Cummins");
System.out.println("3. Honeywell");
int turbochargerChoice = scanner.nextInt();
System.out.println("...............................................");
System.out.println("\n");
switch (turbochargerChoice) {
case 1:
chosenCar = new AlpineTurbocharger(chosenCar);
break;
case 2:
chosenCar = new CumminsTurbocharger(chosenCar);
break;
case 3:
chosenCar = new HoneywellTurbocharger(chosenCar);
break;
default:
throw new IllegalArgumentException("Invalid turbocharger choice");
}
}
System.out.println("------------------");
System.out.println("| Choose a track |");
System.out.println("------------------");
System.out.println("1. Blue Moon Bay Speedway (USA)");
System.out.println("2. BB Raceway (Japan)");
System.out.println("3. Circuit de Spa-Francorchamps (Germany)");
int trackChoice = scanner.nextInt();
System.out.println("...............................................");
System.out.println("\n");
String trackName = "";
switch (trackChoice) {
case 1:
trackName = "Blue Moon Bay Speedway (USA)";
break;
case 2:
trackName = "BB Raceway (Japan)";
break;
case 3:
trackName = "Circuit de Spa-Francorchamps (Germany)";
break;
default:
throw new IllegalArgumentException("Invalid track choice");
}
Track chosenTrack = trackFactory.createTrack(trackName);
System.out.println("Selected Track: " + trackName);
System.out.println("----------------------");
System.out.println("| Choose a race type |");
System.out.println("----------------------");
System.out.println("1. Sprint Race");
System.out.println("2. Circuit Race");
int raceType = scanner.nextInt();
System.out.println("...............................................");
System.out.println("\n");
RaceTypeFactory raceTypeFactory;
if (raceType == 1) {
raceTypeFactory = new SprintRaceFactory();
} else if (raceType == 2) {
raceTypeFactory = new CircuitRaceFactory();
} else {
throw new IllegalArgumentException("Invalid race type");
}
Race race = raceTypeFactory.createRace(chosenCar, chosenTrack);
race.race();
scanner.close();
}
}