import java.util.Scanner; public class Main { private static final int MIN_SPEED = 0; private static final int MAX_SPEED = 250; private static final int NUMBER_OF_CARS = 3; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Race race = new Race(); System.out.println("ÐобÑо пожаловаÑÑ Ð½Ð° Ð³Ð¾Ð½ÐºÑ \"24 ÑаÑа Ðе-Ðана\"!"); System.out.println(); for (int i = 1; i <= NUMBER_OF_CARS; i++) { System.out.println(); System.out.println("--- ÐвÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ â" + i + " ---"); String carName = getValidCarName(scanner, i); int carSpeed = getValidCarSpeed(scanner, i); Automobile car = new Automobile(carName, carSpeed); race.determineLeader(car); System.out.println("ÐвÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ \"" + carName + "\" добавлен в гонкÑ!"); } System.out.println(); System.out.println("СÐÐÐЯ ÐЫСТРÐЯ ÐÐШÐÐÐ: " + race.getLeaderName()); scanner.close(); } private static String getValidCarName(Scanner scanner, int carNumber) { String carName = ""; boolean isValid = false; while (!isValid) { System.out.print("ÐведиÑе название маÑÐ¸Ð½Ñ â" + carNumber + ": "); carName = scanner.nextLine().trim(); // ÐÑовеÑка, ÑÑо название не пÑÑÑое if (carName.isEmpty()) { System.out.println("ÐÑибка: Ðазвание авÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑÑÑÑм!"); } else { isValid = true; } } return carName; } private static int getValidCarSpeed(Scanner scanner, int carNumber) { int speed = 0; boolean isValid = false; while (!isValid) { System.out.print("ÐведиÑе ÑкоÑоÑÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ â" + carNumber + " (1-250 км/Ñ): "); // ÐÑовеÑÑем, ÑÑо введено Ñелое ÑиÑло if (scanner.hasNextInt()) { speed = scanner.nextInt(); scanner.nextLine(); // ÐÑиÑÑка бÑÑеÑа // ÐÑовеÑка диапазона ÑкоÑоÑÑи if (speed > MIN_SPEED && speed <= MAX_SPEED) { isValid = true; } else { System.out.println("ÐепÑавилÑÐ½Ð°Ñ ÑкоÑоÑÑÑ! СкоÑоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¾Ñ " + (MIN_SPEED + 1) + " до " + MAX_SPEED + " км/Ñ."); } } else { // ÐÑли введено не ÑиÑло String invalidInput = scanner.nextLine(); System.out.println("ÐÑибка: \"" + invalidInput + "\" - ÑÑо не ÑиÑло! ÐведиÑе Ñелое ÑиÑло."); } } return speed; } }