modefication du décorateur HybridCar.java avec gestion energie (-10% / +5%)

This commit is contained in:
Chahrazad650
2025-12-13 09:06:18 +01:00
parent 7481364134
commit be6272c881

View File

@@ -8,21 +8,44 @@
*/ */
public class HybridCar extends CarDecorator { public class HybridCar extends CarDecorator {
private boolean consumeThisTurn = false; // alterne vrai/faux private int energy = 100; // énergie batterie (0..100)
public HybridCar(Car car) { public HybridCar(Car car) {
super(car); super(car);
} }
/** pour afficher l'énergie dans le Dashboard */
public int getEnergy() {
return energy;
}
@Override
@Override
public void run() { public void run() {
// 1) La voiture avance toujours // 1) La voiture avance toujours
car.move(); car.move();
// 2) Un tour sur deux seulement : on consomme // 2) Gestion énergie : elle perd 10% à chaque boucle
consumeThisTurn = !consumeThisTurn; energy -= 10;
if (consumeThisTurn) { 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(); 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;
}
} }