# Unit 3 – Basic Practice: Battery

Every phone, laptop, and wireless device has a battery that drains with 
use and needs to be recharged. This practice models a battery that tracks 
its charge level and reports its status.

## Instructions

### Battery

1. Give the battery a way to identify which device it belongs to. Think 
   about whether this can change after the battery is created.
2. The battery needs to track its current charge level. Batteries start 
   fully charged. Think about what type makes sense and whether the level 
   can change.
3. Implement `use()` so that it drains the battery by the given amount 
   and prints the updated level. The charge must never go below zero.
4. Implement `recharge()` so that it resets the charge to 100% and prints 
   a confirmation.
5. Implement `printStatus()` so that it prints one of four labels based on 
   the charge level: Critical (below 10%), Low (below 30%), 
   Good (below 70%), or Full. Think about which Kotlin construct fits 
   naturally when checking several conditions in order.
6. Implement `describe()` so that it returns a short description showing 
   the device name and current charge, e.g. `"Phone: 45%"`.

### Testing

1. Create `Battery("Phone")` and call `describe()` — the battery starts 
   at 100%.
2. Call `use(40)`, then `describe()` again — the charge should have 
   dropped.
3. Call `printStatus()` at different charge levels to verify each label 
   appears.
4. Try calling `use()` with an amount larger than the remaining charge — 
   the battery should drop to 0, not go negative.
5. Call `recharge()` and confirm the charge is back to 100%.
