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
9 changes: 9 additions & 0 deletions src/main/java/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
public class Car {
final String name;
final int speed;

Car(String name, int speed) {
this.name = name;
this.speed = speed;
}
}
56 changes: 52 additions & 4 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
}
41 changes: 41 additions & 0 deletions src/main/java/Race.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import java.util.*;

public class Race {
Car[] racers;

Race(Car[] racers) {
this.racers = racers;
}

public void start() {
ArrayList<Integer> distances = calculateDistances(racers);

String winner = calculateWinner(distances);

System.out.printf("The winner is %s", winner);
}

private ArrayList<Integer> calculateDistances(Car[] racers) {
ArrayList<Integer> distances = new ArrayList<>();

for (Car racer : racers) {
distances.add(racer.speed * 24);
}

return distances;
}

private String calculateWinner(ArrayList<Integer> distances) {
int maxDistance = 0;

for (int distance: distances) {
if (distance > maxDistance) {
maxDistance = distance;
}
}

int indexOfWinner = distances.indexOf(maxDistance);

return racers[indexOfWinner].name;
}
}