feat!: refonte du projet, bug niveau initialisation

This commit is contained in:
2025-12-18 19:32:41 +01:00
parent 748ae70207
commit d210eedb5a
12 changed files with 597 additions and 722 deletions

View File

@@ -10,12 +10,11 @@ import java.awt.Color;
* - Mais elle consomme du carburant seulement 1 fois sur 2
* => donc elle économise du carburant.
*/
public class HybridCar implements Car {
private Car car;
public class HybridCar extends CarDecorator {
private int energy = 100; // énergie batterie (0..100)
public HybridCar(Car car) {
this.car = car;
super(car);
}
/** pour afficher l'énergie dans le Dashboard */
@@ -24,68 +23,25 @@ public class HybridCar implements Car {
}
@Override
public void run() {
// 1) La voiture avance toujours
car.move();
public boolean apply() {
boolean response = car.apply();
// 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) {
if (energy > 0) {
energy -= 10;
} else {
car.consumeFuel();
}
return response;
}
@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;
if (energy <= 100)
energy += 5;
return msg;
}
@Override
public void consumeFuel() {
car.consumeFuel();
}
@Override
public void move() {
car.move();
}
@Override
public String accelerate() {
return car.accelerate();
}
@Override
public void reverse(boolean active) {
car.reverse(active);
}
@Override
public int getPos() {
return car.getPos();
}
@Override
public Color getColor() {
return car.getColor();
}
@Override
public String getName() {
return car.getName();
}
}