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 {
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
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;
}
}