Files
Langlauf/LangLauf/Competition.java
Asecave d2cd58e2c3 works
2020-12-05 12:23:51 +01:00

46 lines
1.1 KiB
Java

public class Competition {
private List<Athlete> runners;
private BinarySearchTree<Athlete> leaderboard;
private RaceSimulator sim;
public Competition() {
runners = new List<>();
leaderboard = new BinarySearchTree<>();
sim = new RaceSimulator();
}
public void newRunner(String name) {
runners.append(new Athlete(name));
}
public void simulate() {
runners.toFirst();
while (runners.hasAccess()) {
sim.simulate(runners.getContent());
leaderboard.insert(runners.getContent());
runners.next();
}
}
public Athlete[] top3() {
Athlete[] top = new Athlete[3];
List<Athlete> inOrder = leaderboard.getInOrder();
inOrder.toFirst();
top[0] = inOrder.getContent();
inOrder.next();
if (!inOrder.hasAccess()){
return top;
}
top[1] = inOrder.getContent();
inOrder.next();
if (!inOrder.hasAccess()){
return top;
}
top[2] = inOrder.getContent();
inOrder.next();
return top;
}
}