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 battery percentage 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"