From be6272c88152c597667c700431e8e691e5e66c3d Mon Sep 17 00:00:00 2001 From: Chahrazad650 Date: Sat, 13 Dec 2025 09:06:18 +0100 Subject: [PATCH] =?UTF-8?q?modefication=20du=20d=C3=A9corateur=20HybridCar?= =?UTF-8?q?.java=20avec=20gestion=20energie=20(-10%=20/=20+5%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/HybridCar.java | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/HybridCar.java b/src/HybridCar.java index 387b1ab..7f1cfb5 100644 --- a/src/HybridCar.java +++ b/src/HybridCar.java @@ -8,21 +8,44 @@ */ public class HybridCar extends CarDecorator { - private boolean consumeThisTurn = false; // alterne vrai/faux + private int energy = 100; // énergie batterie (0..100) public HybridCar(Car car) { super(car); } + /** pour afficher l'énergie dans le Dashboard */ + public int getEnergy() { + return energy; + } - @Override + + @Override public void run() { // 1) La voiture avance toujours car.move(); - // 2) Un tour sur deux seulement : on consomme - consumeThisTurn = !consumeThisTurn; - if (consumeThisTurn) { + // 2) Gestion énergie : elle perd 10% à chaque boucle + energy -= 10; + if (energy < 0) energy = 0; + + // 3) Consommation : + // - si on a encore de l'énergie, on économise le fuel (pas de conso) + // - sinon, on consomme normalement + if (energy == 0) { car.consumeFuel(); } } + + @Override + public String decelerate() { + // 1) On applique le ralentissement normal (State pattern) + String msg = car.decelerate(); + + // 2) Recharge +5% quand on ralentit + energy += 5; + if (energy > 100) energy = 100; + + return msg; + } } +