import java.util.Scanner; public class Race { private final Scanner scanner; private final Car[] cars; public Race() { this.scanner = new Scanner(System.in); this.cars = new Car[3]; } public void startRace() { for (int i = 0; i < cars.length; i++) { cars[i] = createCar(i + 1); } Car winner = determineWinner(); System.out.println("Ð¡Ð°Ð¼Ð°Ñ Ð±ÑÑÑÑÐ°Ñ Ð¼Ð°Ñина: " + winner.getName()); } private Car createCar(int carNumber) { System.out.println("ÐвÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ #" + carNumber); String name = getValidName(carNumber); int speed = getValidSpeed(carNumber); return new Car(name, speed); } private String getValidName(int carNumber) { while (true) { System.out.println("ÐведиÑе название авÑомобилÑ: "); String name = scanner.nextLine().trim(); if (!name.isEmpty()) { return name; } System.out.println("ÐÑибка: название не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑÑÑÑм!"); } } private int getValidSpeed(int carNumber) { while (true) { System.out.println("ÐведиÑе ÑкоÑоÑÑÑ Ð°Ð²ÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ (1-250 км/Ñ): "); String input = scanner.nextLine(); try { int speed = Integer.parseInt(input); if (speed >= 1 && speed <= 250) { return speed; } System.out.println("ÐÑибка: ÑкоÑоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¾Ñ 1 до 250 км/Ñ!"); } catch (NumberFormatException e) { System.out.println("ÐÑибка: введиÑе Ñелое ÑиÑло!"); } } } private Car determineWinner() { Car winner = cars[0]; int maxDistance = winner.calculateDistance(); for (int i = 1; i < cars.length; i++) { int currentDistance = cars[i].calculateDistance(); if (currentDistance > maxDistance) { maxDistance = currentDistance; winner = cars[i]; } } return winner; } }