mirror of
https://github.com/guezoloic/L3-racing-game.git
synced 2026-03-29 03:23:44 +00:00
ajout de decelerate () dans DrunkCar.java
This commit is contained in:
@@ -1,8 +1,15 @@
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Décorateur Drunk :
|
* DrunkCar = décorateur "pilote ivre".
|
||||||
* la voiture peut accélérer ou ralentir au hasard.
|
*
|
||||||
|
* 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 {
|
public class DrunkCar extends CarDecorator {
|
||||||
|
|
||||||
@@ -11,6 +18,7 @@ public class DrunkCar extends CarDecorator {
|
|||||||
public DrunkCar(Car car) {
|
public DrunkCar(Car car) {
|
||||||
super(car);
|
super(car);
|
||||||
}
|
}
|
||||||
|
// 50% : fait la bonne action, 50% : fait l'inverse
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String accelerate() {
|
public String accelerate() {
|
||||||
@@ -20,4 +28,13 @@ public class DrunkCar extends CarDecorator {
|
|||||||
return car.decelerate();
|
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