Skip to content

Commit f4d92df

Browse files
committed
Added a Coffee Machine Game in python
1 parent 2717a2c commit f4d92df

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
class CoffeeMachine:
2+
def __init__(self):
3+
self.water = 500
4+
self.milk = 500
5+
self.coffee_beans = 200
6+
self.cups = 10
7+
self.money = 0
8+
9+
def check_resources(self, water_needed, milk_needed, coffee_beans_needed, cups_needed):
10+
if self.water < water_needed:
11+
return "Sorry, not enough water."
12+
elif self.milk < milk_needed:
13+
return "Sorry, not enough milk."
14+
elif self.coffee_beans < coffee_beans_needed:
15+
return "Sorry, not enough coffee beans."
16+
elif self.cups < cups_needed:
17+
return "Sorry, not enough cups."
18+
else:
19+
return "Enough resources. Enjoy your coffee!"
20+
21+
def buy_coffee(self, choice):
22+
if choice == "espresso":
23+
water_needed = 50
24+
milk_needed = 0
25+
coffee_beans_needed = 18
26+
cups_needed = 1
27+
price = 1.50
28+
coffee_type = "Espresso"
29+
elif choice == "latte":
30+
water_needed = 200
31+
milk_needed = 150
32+
coffee_beans_needed = 24
33+
cups_needed = 1
34+
price = 2.50
35+
coffee_type = "Latte"
36+
elif choice == "cappuccino":
37+
water_needed = 250
38+
milk_needed = 100
39+
coffee_beans_needed = 24
40+
cups_needed = 1
41+
price = 3.00
42+
coffee_type = "Cappuccino"
43+
else:
44+
message = "Invalid choice. Please try again."
45+
return message
46+
47+
message = self.check_resources(water_needed, milk_needed, coffee_beans_needed, cups_needed)
48+
if message == "Enough resources. Enjoy your coffee!":
49+
print(f"Please insert coins for {coffee_type} (${price}):")
50+
quarters = int(input("How many quarters?: "))
51+
dimes = int(input("How many dimes?: "))
52+
nickels = int(input("How many nickels?: "))
53+
pennies = int(input("How many pennies?: "))
54+
55+
total_amount = 0.25 * quarters + 0.10 * dimes + 0.05 * nickels + 0.01 * pennies
56+
if total_amount < price:
57+
return "Insufficient amount. Money refunded."
58+
else:
59+
change = round(total_amount - price, 2)
60+
self.money += price
61+
self.water -= water_needed
62+
self.milk -= milk_needed
63+
self.coffee_beans -= coffee_beans_needed
64+
self.cups -= cups_needed
65+
return f"Here is ${change} in change. Here is your {coffee_type}. Enjoy!"
66+
67+
return message
68+
69+
70+
def main():
71+
coffee_machine = CoffeeMachine()
72+
73+
while True:
74+
print("============================================")
75+
choice = input("What would you like? (espresso/latte/cappuccino): ")
76+
77+
if choice in ["espresso", "latte", "cappuccino"]:
78+
print(coffee_machine.buy_coffee(choice))
79+
else:
80+
print("Invalid choice. Please try again.")
81+
82+
83+
if __name__ == "__main__":
84+
main()

0 commit comments

Comments
 (0)