mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-28 18:03:50 +00:00
41 lines
968 B
Java
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();
|
|
}
|
|
}
|
|
}
|