diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..b1e2c43dd 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,48 @@ +import java.util.ArrayList; +import java.util.Scanner; + +import main.java.Car; +import main.java.Race; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + ArrayList cars = getCars(3); + Race race = new Race(cars); + Car winner = race.getWinner(); + System.out.printf("Самая быстрая машина: %s", winner.title); + } + + public static ArrayList getCars(int participantsCount) { + Scanner scanner = new Scanner(System.in); + ArrayList cars = new ArrayList<>(); + for (int i = 1; i <= participantsCount; i++) { + String title = getCarTitle(scanner, i); + int speed = getCarSpeed(scanner, i); + cars.add(new Car(title, speed)); + } + + return cars; + } + + public static String getCarTitle(Scanner scanner, int participantNumber) { + System.out.printf("— Введите название машины №%d:", participantNumber); + return scanner.next(); + } + + public static int getCarSpeed(Scanner scanner, int participantNumber) { + System.out.printf("— Введите скорость машины №%d:", participantNumber); + if (!scanner.hasNextInt()) { + System.out.println("— Неправильная скорость"); + scanner.next(); + return getCarSpeed(scanner, participantNumber); + } + + int speed = scanner.nextInt(); + if (Car.isSpeedValid(speed)) { + return speed; + } + System.out.println("— Неправильная скорость"); + + return getCarSpeed(scanner, participantNumber); } } \ No newline at end of file diff --git a/src/main/java/main/java/Car.java b/src/main/java/main/java/Car.java new file mode 100644 index 000000000..334af4ff9 --- /dev/null +++ b/src/main/java/main/java/Car.java @@ -0,0 +1,15 @@ +package main.java; + +public class Car { + final public String title; + final public int speed; + + public Car(String title, int speed) { + this.title = title; + this.speed = speed; + } + + public static boolean isSpeedValid(int speed) { + return speed > 0 && speed <= 250; + } +} diff --git a/src/main/java/main/java/Race.java b/src/main/java/main/java/Race.java new file mode 100644 index 000000000..e18792e95 --- /dev/null +++ b/src/main/java/main/java/Race.java @@ -0,0 +1,28 @@ +package main.java; + +import java.util.ArrayList; + +public class Race { + private final ArrayList cars; + private Car winner; + + public Race(ArrayList cars) { + this.cars = cars; + //тут надо кинуть екцепшен если машин меньше 2-х например, но мы их пока не изучали :-) + } + + public Car getWinner() { + if (this.winner != null) { + return this.winner; + } + + this.winner = cars.get(0); + for (Car car: cars) { + if (car.speed > winner.speed) { + this.winner = car; + } + } + + return this.winner; + } +}