import java.util.ArrayList;
import java.util.Scanner;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// СпиÑок маÑин-ÑÑаÑÑников
ArrayList carList = new ArrayList<>();
// СпиÑок маÑин-победиÑелей (на ÑлÑÑай, еÑли иÑ
бÑÐ´ÐµÑ Ð½ÐµÑколÑко)
ArrayList winner = new ArrayList<>();
// Ð¡ÐµÑ Ð¸Ð¼ÐµÐ½ маÑин (иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки ÑникалÑноÑÑи имени оÑеÑедной маÑинÑ)
HashSet uniqNames = new HashSet<>();
// колиÑеÑÑво маÑин-ÑÑаÑÑников
int countCars = 3;
// макÑималÑÐ½Ð°Ñ Ð´Ð¾Ð¿ÑÑÑÐ¸Ð¼Ð°Ñ ÑкоÑоÑÑÑ (км/Ñ)
double maxSpeed = 250;
// ÐниÑиализаÑÐ¸Ñ ÑпиÑка маÑин даннÑми полÑзоваÑелÑ
for (int i = 0; i < countCars; i++){
String name = "";
double speed = -1;
// СÑиÑÑваем название маÑинÑ
while(true){
System.out.println("- ÐведиÑе название маÑÐ¸Ð½Ñ â" + (i + 1) + ":");
name = scanner.next();
System.out.print("\n");
boolean isUniq = uniqNames.add(name);
if (isUniq){
break;
} else {
System.out.println("- ÐаÑина Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ '" + name + "' Ñже заÑегиÑÑÑиÑована.");
}
}
// СÑиÑÑваем ÑкоÑоÑÑÑ Ð¼Ð°ÑинÑ
while(true){
System.out.println("- ÐведиÑе ÑкоÑоÑÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ â" + (i + 1)
+ " в пÑеделаÑ
(0, 250] км/Ñ:");
if (scanner.hasNextDouble()){
speed = scanner.nextDouble();
System.out.print("\n");
if (speed == 0) {
System.out.println("- ÐажеÑÑÑ, маÑина â" + (i + 1) + " ÑдалаÑÑ Ð±ÐµÐ· боÑ!");
} else if (speed < 0) {
System.out.println("- ÐажеÑÑÑ, маÑина â" + (i + 1)
+ " поеÑ
ала в дÑÑгÑÑ ÑÑоÑонÑ!");
} else if (speed > maxSpeed) {
System.out.println("- ÐÑо Ð±Ñ Ð¼Ð¾Ð³ подÑмаÑÑ, ÑÑо на гонкаÑ
Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ"
+ " пÑевÑÑение ÑкоÑоÑÑи?");
} else {
// СкоÑоÑÑÑ Ð²Ð²ÐµÐ´ÐµÐ½Ð° коÑÑекÑно
break;
}
} else {
System.out.print("\n");
System.out.println("- ÐожалÑйÑÑа, иÑполÑзÑйÑе ÑолÑко ÑиÑленнÑе знаÑениÑ." +
"\n- ÐÑли знаÑение не Ñелое, иÑполÑзÑйÑе ',' в каÑеÑÑве ÑазделиÑелÑ.");
String badData = scanner.next();
}
}
//ÐаннÑе полÑзоваÑÐµÐ»Ñ ÐºÐ¾ÑÑекÑнÑе, Ñоздаем обÑÐµÐºÑ Ð¼Ð°ÑÐ¸Ð½Ñ Ð¸ добавлÑем его в ÑпиÑок маÑин
carList.add(new RacingCar(name, speed));
}
// ÐÑиÑаем ÑпиÑок ÑникалÑнÑÑ
имен маÑин, ÑÑÐ¾Ð±Ñ Ð½Ðµ занимаÑÑ Ð¿Ð°Ð¼ÑÑÑ
uniqNames.clear();
Race race = new Race();
// ÐпÑеделÑем победиÑелÑ
race.defineWinner(carList);
winner = race.getWinner();
// ÐÑводим полÑзоваÑÐµÐ»Ñ Ð¸Ð¼ÐµÐ½Ð° победиÑелей
int countWinners = winner.size();
if (countWinners == 0){
System.out.println("ЧÑо-Ñо поÑло не Ñак. Ðе ÑдалоÑÑ Ð¾Ð¿ÑеделиÑÑ Ð¿Ð¾Ð±ÐµÐ´Ð¸ÑелÑ.");
} else {
System.out.println("ÐобедиÑелем ÑÑановиÑÑÑ:");
for (int i = 0; i < countWinners; i++){
System.out.println(winner.get(i).getName());
}
}
}
}