Files
racing-game/src/DrunkCar.java
2025-12-13 08:49:03 +01:00

41 lines
968 B
Java

import java.util.Random;
/**
* DrunkCar = décorateur "pilote ivre".
*
* Idée :
* - Quand l'utilisateur demande "Accelerer", le pilote peut se tromper
* et faire "Rallentir" à la place (au hasard).
* - Pareil quand on demande "Rallentir".
*
* => On modifie seulement les actions utilisateur (accelerate/decelerate),
* sans modifier la classe Car.
*/
public class DrunkCar extends CarDecorator {
private static final Random RANDOM = new Random();
public DrunkCar(Car car) {
super(car);
}
// 50% : fait la bonne action, 50% : fait l'inverse
@Override
public String accelerate() {
if (RANDOM.nextBoolean()) {
return car.accelerate();
} else {
return car.decelerate();
}
}
@Override
public String decelerate() {
if (RANDOM.nextBoolean()) {
return car.decelerate();
} else {
return car.accelerate();
}
}
}