diff --git a/src/Game.java b/src/Game.java index 72ccae6..6584b9e 100644 --- a/src/Game.java +++ b/src/Game.java @@ -243,14 +243,17 @@ public class Game * * @throws InterruptedException si le thread est interrompu pendant wait() */ - private synchronized void step() throws InterruptedException + private void step() throws InterruptedException { - for (int i = 0; i < cars.size(); i++) + for (Car car : cars) { - while (isPaused) - wait(); + synchronized(this) + { + while (isPaused) + wait(); + } - cars.get(i).run(); + car.run(); for (GObserver o : obs) { diff --git a/src/Rankboard.java b/src/Rankboard.java index a61ea93..0f81e1f 100644 --- a/src/Rankboard.java +++ b/src/Rankboard.java @@ -47,10 +47,13 @@ public class Rankboard extends GameView */ private void updateRankText() { - cars.sort(Comparator.comparingInt(Car::getScore).reversed()); + // cloner pour de modifier la classe principale + ArrayList cars_clone = new ArrayList<>(cars); + cars_clone.sort(Comparator.comparingInt(Car::getScore).reversed()); + StringBuilder s = new StringBuilder(); s.append(""); - for (Car c : cars) + for (Car c : cars_clone) { s.append(""); }
" + c + ": " + c.getScore() + "%