mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-28 18:03:50 +00:00
modefication du décorateur HybridCar.java avec gestion energie (-10% / +5%)
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user