diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 0000000..4fccc3d --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,9 @@ +public class Car { + final String name; + final int speed; + + Car(String name, int speed) { + this.name = name; + this.speed = speed; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..4a68232 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,56 @@ +import java.util.Scanner; + + public class Main { + static Scanner scanner = new Scanner(System.in); + public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + System.out.println("Enter amount of racers"); + int amount = scanner.nextInt(); + + System.out.println("Now enter racers' names and speed\nOn a separate lines"); + + Car[] cars = create(amount); + + Race race = new Race(cars); + + race.start(); + + +// for (Car car: cars) System.out.printf("Name: %s\nSpeed: %d\n", car.name, car.speed); + + + } + + private static Car[] create(int amount) { + Car[] cars = new Car[amount]; + + for (int i = 1; i < amount + 1; ++i) { + System.out.printf("%d racer's name and speed:\n", i); + String name = scanner.next(); + String speed; + int intSpeed; + while (true) { + speed = scanner.next(); + + try { + intSpeed = Integer.parseInt(speed); + } catch (NumberFormatException e) { + System.out.println("Speed should be a number between 0 and 250\nTry again"); + continue; + } + + if (0 < intSpeed && intSpeed <= 250) { + break; + } else { + System.out.println("Speed should be between 0 and 250\nTry again"); + } + } + cars[i - 1] = new Car(name, intSpeed); + } + + return cars; } -} +} \ No newline at end of file diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 0000000..ba37ea5 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,41 @@ +import java.util.*; + +public class Race { + Car[] racers; + + Race(Car[] racers) { + this.racers = racers; + } + + public void start() { + ArrayList distances = calculateDistances(racers); + + String winner = calculateWinner(distances); + + System.out.printf("The winner is %s", winner); + } + + private ArrayList calculateDistances(Car[] racers) { + ArrayList distances = new ArrayList<>(); + + for (Car racer : racers) { + distances.add(racer.speed * 24); + } + + return distances; + } + + private String calculateWinner(ArrayList distances) { + int maxDistance = 0; + + for (int distance: distances) { + if (distance > maxDistance) { + maxDistance = distance; + } + } + + int indexOfWinner = distances.indexOf(maxDistance); + + return racers[indexOfWinner].name; + } +}