import static java.lang.Integer.parseInt;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("ÐобÑо пожаловаÑÑ Ð½Ð° 24 ÑаÑа Ðе-Ðана!");
Race race;
ArrayList racersList = new ArrayList<>();
String needAnotherRaceStr;
boolean bNeedAnotherRace;
while (true) {
racersList.clear();
while (true) {
System.out.println("ÐведиÑе колиÑеÑÑво ÑÑавÑÑвÑÑÑиÑ
в заезде авÑомобилей:");
String racersNum = scanner.next();
if (racersNum.matches("-?\\d+")) {
if (parseInt(racersNum) > 0) {
for (int i = 0; i < parseInt(racersNum); i++) {
racersList.add(appendCar(i));
}
break;
} else {
System.out.println("ÐекоÑÑекÑное ÑиÑло ÑÑаÑÑников заезда");
}
} else System.out.println("ÐекоÑÑекÑное ÑиÑло ÑÑаÑÑников заезда");
}
race = new Race(racersList);
race.startRace();
race.getResult();
while (true) {
System.out.println("ÐелаеÑе пÑовеÑÑи еÑе один заезд? Ðа/ÐеÑ");
needAnotherRaceStr = scanner.next();
if (needAnotherRaceStr.equals("Ðа")) {
bNeedAnotherRace = true;
break;
} else if (needAnotherRaceStr.equals("ÐеÑ")) {
bNeedAnotherRace = false;
break;
} else System.out.println("ÐекоÑÑекÑнÑй ввод");
}
if (!bNeedAnotherRace)
break;
}
}
public static Car appendCar(int number) {
String carName;
String carSpeed;
while (true) {
System.out.println("ÐведиÑе название авÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ â" + (number + 1));
carName = scanner.next();
if (carName.isBlank()) {
System.out.println("ÐекоÑÑекÑное название авÑомобилÑ");
} else break;
}
while (true) {
System.out.println("ÐведиÑе ÑкоÑоÑÑÑ Ð°Ð²ÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ â" + (number + 1) + " в диапазоне Ð¾Ñ 0 до 250 км\\Ñ");
carSpeed = scanner.next();
if (carSpeed.matches("-?\\d+")) {
if (parseInt(carSpeed) >= 0 && parseInt(carSpeed) <= 250) {
break;
} else System.out.println("ÐекоÑÑекÑÐ½Ð°Ñ ÑкоÑоÑÑÑ");
} else System.out.println("ÐекоÑÑекÑÐ½Ð°Ñ ÑкоÑоÑÑÑ");
}
return new Car(parseInt(carSpeed), carName);
}
}