In this exercise you'll be playing around with a remote controlled car, which you've finally saved enough money for to buy.
Cars start with full (100%) batteries. Each time you drive the car using the remote control, it covers 20 meters and drains one percent of the battery.
The remote controlled car has a fancy LED display that shows two bits of information:
- The total distance it has driven, displayed as:
"Driven <METERS> meters"
. - The remaining battery charge, displayed as:
"Battery at <PERCENTAGE>%"
.
If the battery is at 0%, you can't drive the car anymore and the battery display will show "Battery empty"
.
You have six tasks, each of which will work with remote controlled car instances.
Implement the (static) RemoteControlCar.Buy()
method to return a brand-new remote controlled car instance:
RemoteControlCar car = RemoteControlCar.Buy();
Implement the RemoteControlCar.DistanceDisplay()
method to return the distance as displayed on the LED display:
var car = RemoteControlCar.Buy();
car.DistanceDisplay();
// => "Driven 0 meters"
Implement the RemoteControlCar.BatteryDisplay()
method to return the distance as displayed on the LED display:
var car = RemoteControlCar.Buy();
car.BatteryDisplay();
// => "Battery at 100%"
Implement the RemoteControlCar.Drive()
method that updates the number of meters driven:
var car = RemoteControlCar.Buy();
car.Drive();
car.Drive();
car.DistanceDisplay();
// => "Driven 40 meters"
Update the RemoteControlCar.Drive()
method to update the battery percentage:
var car = RemoteControlCar.Buy();
car.Drive();
car.Drive();
car.BatteryDisplay();
// => "Battery at 98%"
Update the RemoteControlCar.Drive()
method to not increase the distance driven nor decrease the battery percentage when the battery is drained (at 0%):
var car = RemoteControlCar.Buy();
// Drain the battery
// ...
car.DistanceDisplay();
// => "Driven 2000 meters"
car.BatteryDisplay();
// => "Battery empty"