import java.util.HashMap;
public class Race {
String raceName = "24 ÑаÑа Ðеман";
Vehicle raceWinner;
HashMap vehicles = new HashMap<>(); // ÐаÑÐ¸Ð½Ñ Ð´Ð»Ñ ÑÑаÑÑÐ¸Ñ Ð² гонке
boolean checkDuplicatesVehicleName(Vehicle vehicle) {
return this.vehicles.containsKey(vehicle.vehicleName);
}
boolean checkDuplicatesVehicleSpeed(Vehicle vehicle) {
for (String key : vehicles.keySet()) {
if (vehicle.vehicleSpeed == vehicles.get(key).vehicleSpeed) {
return true;
}
}
return false;
}
void addVehicleToRace(Vehicle vehicle) {
if (checkDuplicatesVehicleName(vehicle)) {
System.out.println("\nÐвÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ \"" + vehicle.vehicleName + "\" Ñже в ÑпиÑке." +
"\nÐнаÑение ÑкоÑоÑÑи обновлено на: " + vehicle.vehicleSpeed + "\n");
this.vehicles.put(vehicle.vehicleName, vehicle);
} else if (checkDuplicatesVehicleSpeed(vehicle)) {
System.out.println("\nÐвÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ \"" + vehicle.vehicleName + "\" нелÑÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ð² гонкÑ, " +
"\nÑ.к. в нÑм Ñже еÑÑÑ Ð°Ð²ÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ Ñ Ñакой же ÑкоÑоÑÑÑÑ. " +
"\nÐобедиÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ ÑолÑко один. " +
"\nÐзмениÑе ÑкоÑоÑÑÑ Ð°Ð²ÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ Ð¸ добавÑÑе его повÑоÑно.\n");
} else {
this.vehicles.put(vehicle.vehicleName, vehicle);
}
}
void printRaceInfo() {
System.out.println("\n-----===== ÐнÑоÑмаÑÐ¸Ñ Ð¾ гонке ======------");
System.out.println("Ðонка: " + this.raceName);
System.out.println("ÐолиÑеÑÑво заÑвленнÑÑ
авÑомобилей: " + this.vehicles.size());
for (String key : this.vehicles.keySet()) {
System.out.println(vehicles.get(key).getVehicleInfo());
}
System.out.println("-----===== ÐÐ¾Ð½ÐµÑ ======------\n");
}
void doRace() {
System.out.println("\n-----===== Ðонка наÑалаÑÑ ======------");
System.out.println("Ð¡Ð°Ð¼Ð°Ñ Ð±ÑÑÑÑÐ°Ñ Ð¼Ð°Ñина: " + this.raceWinnerCalculate().vehicleName);
System.out.println("-----===== Ðонка завеÑÑена ======------\n");
}
Vehicle raceWinnerCalculate() {
int count = 1;
for (String key : vehicles.keySet()) {
if (count == 1) {
this.raceWinner = vehicles.get(key);
count++;
} else if (this.raceWinner.vehicleSpeed < vehicles.get(key).vehicleSpeed) {
this.raceWinner = vehicles.get(key);
}
}
return this.raceWinner;
}
}