Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/main/java/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Car {
final String name;
final int speed;
public Car(String name, int speed) {
this.name = name;
this.speed = speed;
}


}

66 changes: 64 additions & 2 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,68 @@
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
System.out.println("Hello world!");
Scanner scanner = new Scanner(System.in);
int participantsNumber = 3;
String[] answersToContinue = new String[]{ "да", "lf", "y", "yes"};
while (true) {
try {
System.out.println("Привет! Эта программа для расчета лидера в гонки 24 часа Ле-Мана.");
System.out.println("Необходимо ввести название и скорость 3-х участников гонки.");
Race race = new Race();
Car leader = null;
for (int i = 1; i <= participantsNumber; i++) {
leader = race.evaluateLeader(getCarFromInput(i));
}
System.out.println("Самая быстрая машина: " + leader.name);
System.out.println("Заного? да/нет");
String continueAnswer = scanner.next();
if (!Arrays.asList(answersToContinue).contains(continueAnswer.trim().toLowerCase())) {
System.out.println("До свидания");
break;
}
} catch (Throwable e) {
System.out.println("Что-то пошло не так :(");
throw e;
}
}
}


private static Car getCarFromInput(int carNumber) {
Car car;
String name;
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("Введите имя машины №" + carNumber);
name = scanner.nextLine();
if(name.trim().isEmpty()){
System.out.println("Введите не пустое значение");
}else {
break;
}
}
while (true) {
System.out.println("Введите скорость машины №" + carNumber);
if (scanner.hasNextInt()) {
int speed = scanner.nextInt();
if (Race.minimumSpeed < speed && speed <= Race.maximumSpeed) {
name = name.trim();
car = new Car(name, speed);
System.out.println("Машина с именем " + car.name + " зарегистрирована! Ее скорость: " + car.speed);
break;
} else {
System.out.println("Скорость должна быть больше 0 и меньше или равна 250");
}
} else {
System.out.println("Введите корректное значение скорости");
scanner.next();
}
}

return car;
}
}
}
19 changes: 19 additions & 0 deletions src/main/java/Race.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import java.util.ArrayList;

public class Race {

private Car currentLeader;
private final int durationHours = 24;
public static final int minimumSpeed = 0;
public static final int maximumSpeed = 250;

public Car evaluateLeader(Car car) {
if (currentLeader == null) {
currentLeader = car;
} else if (durationHours * car.speed > durationHours * currentLeader.speed) {
currentLeader = car;
}
return currentLeader;
}
}