mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-28 18:03:50 +00:00
ajout de decelerate () dans DrunkCar.java
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Décorateur Drunk :
|
||||
* la voiture peut accélérer ou ralentir au hasard.
|
||||
* 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 {
|
||||
|
||||
@@ -11,6 +18,7 @@ public class DrunkCar extends CarDecorator {
|
||||
public DrunkCar(Car car) {
|
||||
super(car);
|
||||
}
|
||||
// 50% : fait la bonne action, 50% : fait l'inverse
|
||||
|
||||
@Override
|
||||
public String accelerate() {
|
||||
@@ -20,4 +28,13 @@ public class DrunkCar extends CarDecorator {
|
||||
return car.decelerate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String decelerate() {
|
||||
if (RANDOM.nextBoolean()) {
|
||||
return car.decelerate();
|
||||
} else {
|
||||
return car.accelerate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
src/HybridCar.java
Normal file
20
src/HybridCar.java
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Décorateur Hybrid :
|
||||
* consomme moins de carburant.
|
||||
*/
|
||||
public class HybridCar extends CarDecorator {
|
||||
|
||||
public HybridCar(Car car) {
|
||||
super(car);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// une fois sur deux, pas de consommation
|
||||
if (Math.random() < 0.5) {
|
||||
car.move();
|
||||
} else {
|
||||
car.run();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user