Repository navigation
Expand file tree
/
Copy pathRaceUtils.java
More file actions
96 lines (74 loc) · 3.42 KB
/
Copy pathRaceUtils.java
File metadata and controls
96 lines (74 loc) · 3.42 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
import java.util.ArrayList;
import java.util.Scanner;
public class RaceUtils {
private static final String inputMessageRacingCarName =
"Введите название гоночного автомобиля №%d: ";
private static final String inputMessageRacingCarSpeed =
"Введите скорость гоночного автомобиля №%d: ";
private static final String alertMessageSpeedRange =
"Скорость автомобиля должна быть указана в диапазоне от 1 до 250 км/ч";
private static RacingCar setRacingCarNameAndSpeed(int carNumber) {
String racingCarName = setRacingCarName(carNumber);
int racingCarSpeed = setRacingCarSpeed(carNumber);
System.out.print("\n");
return new RacingCar(racingCarName, racingCarSpeed);
}
private static String setRacingCarName(int carNumber) {
String racingCarName = "";
boolean racingCarSpeedCheck = true;
System.out.printf(inputMessageRacingCarName, carNumber);
while (racingCarSpeedCheck) {
Scanner scannerRacingCarName = new Scanner(System.in);
racingCarName = scannerRacingCarName.nextLine();
if (racingCarName.isEmpty()) {
System.out.println("Название гоночного автомобиля не должно быть пустым!");
System.out.printf(inputMessageRacingCarName, carNumber);
} else {
racingCarSpeedCheck = false;
}
}
return racingCarName;
}
private static int setRacingCarSpeed(int carNumber) {
int racingCarSpeed = 0;
boolean racingCarSpeedCheck = true;
System.out.printf(inputMessageRacingCarSpeed, carNumber);
while (racingCarSpeedCheck) {
Scanner scannerRacingCarSpeed = new Scanner(System.in);
if (scannerRacingCarSpeed.hasNextInt()) {
racingCarSpeed = scannerRacingCarSpeed.nextInt();
if (racingCarSpeed > 0 && racingCarSpeed <= 250) {
racingCarSpeedCheck = false;
} else {
System.out.println(alertMessageSpeedRange);
System.out.printf(inputMessageRacingCarSpeed, carNumber);
}
} else {
System.out.println(alertMessageSpeedRange);
System.out.printf(inputMessageRacingCarSpeed, carNumber);
}
}
return racingCarSpeed;
}
public static ArrayList<RacingCar> getAllRacingCars(int countOfRacingCars) {
int minCountOfRacingCars = 1;
ArrayList<RacingCar> listRacingCars = new ArrayList<>();
do {
listRacingCars.add(setRacingCarNameAndSpeed(minCountOfRacingCars));
minCountOfRacingCars++;
} while (minCountOfRacingCars <= countOfRacingCars);
return listRacingCars;
}
public static void getRaceWinner(ArrayList<RacingCar> listRacingCars) {
int hoursOfRace = 24;
int finalDistance;
RacingCar winner = listRacingCars.get(0);
for (RacingCar raceCar : listRacingCars) {
finalDistance = raceCar.speed * hoursOfRace;
if (finalDistance > winner.speed * hoursOfRace) {
winner = raceCar;
}
}
System.out.println("Самая быстрая машина: " + winner.name);
}
}