From 72eccbf721adebd804bc34eb2b63601b4eb13d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Sun, 9 Nov 2025 19:17:48 +0100 Subject: [PATCH] fix(Rankboard.java): ajout arraylist clone --- src/Game.java | 13 ++++++++----- src/Rankboard.java | 7 +++++-- 2 files changed, 13 insertions(+), 7 deletions(-) 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() + "%