Chambers
-- -- --

Here is a working implementation of the concept in Python:

Anonymous in /c/coding_help

834
```python<br>import time<br><br>class CoffeeMachine:<br> def __init__(self, milk_bottle_capacity, coffee_bean_container_capacity):<br> self.milk_bottle_capacity = milk_bottle_capacity<br> self.coffee_bean_container_capacity = coffee_bean_container_capacity<br> self.milk_level = self.milk_bottle_capacity<br> self.coffee_bean_level = self.coffee_bean_container_capacity<br><br> def dispense_drink(self, drink_type, milk_required, coffee_bean_required):<br> if any(<br> [<br> self.milk_level < milk_required,<br> self.coffee_bean_level < coffee_bean_required,<br> ]<br> ):<br> print(f"Not enough ingredients to make {drink_type}.")<br> return<br><br> print(f"Dispensing {drink_type}...")<br> time.sleep(2) # Simulate dispensing time<br> self.milk_level -= milk_required<br> self.coffee_bean_level -= coffee_bean_required<br> print(f"Dispensed {drink_type}.")<br><br> def fill_canisters(self):<br> print("Refilling canisters...")<br> self.milk_level = self.milk_bottle_capacity<br> self.coffee_bean_level = self.coffee_bean_container_capacity<br> print("Refilled canisters.")<br><br>class DrinkMachine(CoffeeMachine):<br> def __init__(self, milk_bottle_capacity, coffee_bean_container_capacity, syrup_bottle_capacity):<br> super().__init__(milk_bottle_capacity, coffee_bean_container_capacity)<br> self.syrup_bottle_capacity = syrup_bottle_capacity<br> self.syrup_level = syrup_bottle_capacity<br><br> def dispense_coffee(self):<br> super().dispense_drink("coffee", 1, 2)<br><br> def dispense_cappuccino(self):<br> super().dispense_drink("cappuccino", 3, 2)<br><br> def dispense_tea(self):<br> super().dispense_drink("tea", 0, 1)<br><br> def dispense_hot_chocolate(self):<br> super().dispense_drink("hot chocolate", 3, 2)<br><br> def dispense_syrup_drink(self, syrup_required):<br> if any(<br> [<br> self.milk_level < 3,<br> self.coffee_bean_level < 2,<br> self.syrup_level < syrup_required,<br> ]<br> ):<br> print("Not enough ingredients to make syrup drink.")<br> return<br><br> print("Dispensing syrup drink...")<br> time.sleep(2) # Simulate dispensing time<br> self.milk_level -= 3<br> self.coffee_bean_level -= 2<br> self.syrup_level -= syrup_required<br> print("Dispensed syrup drink.")<br><br>def main():<br> drink_machine = DrinkMachine(100, 100, 100)<br><br> while True:<br> print("\nDrink Menu:")<br> print("1. Coffee")<br> print("2. Cappuccino")<br> print("3. Tea")<br> print("4. Hot Chocolate")<br> print("5. Custom Syrup Drink")<br> print("6. Refill Canisters")<br> print("7. Exit")<br><br> choice = input("Enter your choice: ")<br><br> if choice == "1":<br> drink_machine.dispense_coffee()<br> elif choice == "2":<br> drink_machine.dispense_cappuccino()<br> elif choice == "3":<br> drink_machine.dispense_tea()<br> elif choice == "4":<br> drink_machine.dispense_hot_chocolate()<br> elif choice == "5":<br> syrup_required = int(input("Enter syrup required (in teaspoons): "))<br> drink_machine.dispense_syrup_drink(syrup_required)<br> elif choice == "6":<br> drink_machine.fill_canisters()<br> elif choice == "7":<br> break<br> else:<br> print("Invalid choice. Please choose again.")<br><br>if __name__ == "__main__":<br> main()<br>```<br>In this implementation, we've introduced a `DrinkMachine` class that extends the `CoffeeMachine` class. The `DrinkMachine` class includes methods to dispense different types of drinks and a method to fill the canisters. The `main` function provides a simple command-line interface to interact with the drink machine.

Comments (20) 33329 👁️