Lemonade Stand
Group Members
Idea
This is your basic "Lemonade Stand" style game, where the player manages a lemonade stand (or similar such store) and tries to make as much money as possible.
Goals
We're looking to create a workable prototype with the ability to buy materials and sell a product.
Potential Problems
Localization is likely to be a big problem in this game. Not simply translating the words, but also translating the idea, ie. finding out what kind of shop would be reasonable to open in a country, what it might stock, etc.
Important Ideas
Variations in customer demand
Perishable resources
Variation of prices (both materials and final product)
Wishlist Ideas
Weather patterns impacting sales
Making change (introduction to currency/fractions/small decimals)
Advanced mode: changing the recipie for your "lemonade"
Bargaining/haggling
Random events that may influence supplies and/or cost and/or customers
Potential use of network, competitive or cooperative modes
Weekly Milestones
4/24: Have everyone look at the current implementations.
5/1: produce a basic 'sugarized' build to work from. Implement price fluctuations.
5/8: Move to a 'graphical interface' based off of pyGTK or pygame. Add any art we have managed to collect where it seems appropriate.
Code so far
#!/usr/env python
def take_input(text, default = 0):
try:
in_text = input(text+" ["+`default`+"]: ")
except:
return default
return in_text
# default values
cup_price = .25
lemon_price = 1.00
sugar_price = .05
product_price = 1.50
#starting resources
bank = 100
stored_cups = 0
stored_lemons = 0
stored_sugar = 0
# take in input
num_days = take_input("How many days", 30)
for day in range(1, num_days + 1):
print "Day number "+`day`
print "You have "+`stored_cups`+" cups, "+`stored_lemons`+" lemons, and "+`stored_sugar`+" sugar left."
print "Cup price: $"+`cup_price`
print "Lemon price: $"+`lemon_price`
print "Sugar price: $"+`sugar_price`
expenses = 0
in_num = take_input("How many cups")
expenses += in_num * cup_price
stored_cups += in_num
in_num = take_input("How many lemons")
expenses += in_num * lemon_price
stored_lemons += in_num
in_num = take_input("How much sugar")
expenses += in_num * sugar_price
stored_sugar += in_num
today = min(stored_cups, stored_lemons, stored_sugar)
# Option 1: make maximum available
#stored_cups -= today
#stored_lemons -= today
#stored_sugar -= today
#print `today`+" cups made for $"+`expenses`
#default value
requested_sales = 5
sales = min(today, requested_sales)
# Option 2: make as many as requested
stored_cups -= sales
stored_lemons -= sales
stored_sugar -= sales
print `sales`+" cups made for $"+`expenses`
profit = sales * product_price
print `sales`+" cups were sold today for $"+`profit`
print "You made $"+`(profit - expenses)`+" today."
bank += profit - expenses
print "Current funds: $"+`bank`
print "Done!"
Alternate Implementation:
def supplyReduce():
global cups, lemons, ice
if cups != 0:
cups -= 1
if lemons != 0:
lemons -= 1
if ice != 0:
ice -= 1
print "some of your supplys was stolen by ants!"
def makeStuff():
global cups, lemons, ice
made = min(cups, lemons, ice )
cups -= made
lemons -= made
ice -= made
print "You made " + str(made) + " cups of lemonade"
name = 'lemonade stand'
cups = 0
lemons = 0
ice = 0
today = 0
daysToPlay = 0
print "Welcome to " + name
daysToPlay = input("How many days would you like to play for: ")
while today <= daysToPlay:
print " "
print "You have"
print "cups: " + str(cups)
print "lemons: " + str(lemons)
print "ice: " + str(ice)
print " "
try:
cupsToAdd = input("How many cups do you want to buy? ")
cups += cupsToAdd
lemonsToAdd = input("How many lemons do you want to buy? ")
lemons += lemonsToAdd
iceToAdd = input("How much ice do you want to buy? ")
ice += iceToAdd
except:
print "dont break my program"
print " "
makeStuff()
supplyReduce()
today += 1
Design Decisions
Is lemonade made at the beginning of the day (make all available lemonade at once) or on the fly (a customer asks for lemonade and it is made for them)? This is important as it impacts the resources from day to day. In the former, normally non-perishable objects like cups will be used if they can make another drink (even beyond demand), however in the latter, it makes the game easy if you stock up on resources and slowly sell them each day. This is usually mitigated by having perishable resources (lemons, etc) and variable prices.