import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.NoSuchElementException; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); ArrayList listOfCar = new ArrayList<>(); ArrayList winner = new ArrayList<>(); Race race; try { //заполняем автомобили setCars(listOfCar, in); //создаём гонку race = new Race(listOfCar); //гоняем winner = race.letsRace(); //объявляем победителя(ей) printWinner(winner); } catch (Exception e){ System.out.println("К такому я не был готов"); } finally { in.close(); } } public static void setCars(ArrayList listOfCars, Scanner in) { int i = 1, speed; String name; System.out.println("Для запуска гонки потребуется заполнить параметры для 3-х автомобилей.\nЗначение скорости должно быть в диапазоне от 0 до 250."); while (i < 4) { //ввод названия авто System.out.println("Введите название " + i + "-го автомобиля:"); while (true) { name = in.nextLine(); if (!name.trim().isEmpty()) { break; } else { System.out.println("Так не пойдёт, давайте попробуем ещё раз!"); System.out.println("Введите название " + i + "-го автомобиля:"); } } //ввод скорости System.out.println("Отлично. Теперь введите скорость " + i + "-го автомобиля:"); while (true) { if(in.hasNextInt()){ speed = in.nextInt(); in.nextLine(); if(speed >= 0 && speed <= 250){ break; } else { System.out.println("Скорость вне диапазона. Попробуйте ещё раз"); System.out.println("Введите скорость " + i + "-го автомобиля:"); } } else { System.out.println("Так не пойдёт, давайте попробуем ещё раз!"); System.out.println("Введите скорость " + i + "-го автомобиля:"); in.next(); } } listOfCars.add(new Car(name, speed)); i++; } } public static void printWinner(ArrayList winner){ if (winner.size() == 1){ System.out.println("Победителем становится: " + winner.getFirst()); } else { System.out.println("Победителями становятся: " + winner.size()); for (Car car : winner) { System.out.println(car); } } } }