Difference between revisions of "Lemonade Stand"

From Sugar Labs
Jump to navigation Jump to search
(Upload of my implementation)
Line 25: Line 25:
  
 
==Code so far==
 
==Code so far==
<code>
+
<pre>
 +
#!/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!"
 +
</pre>
 +
 
 +
Alternate Implementation:
 +
<pre>
 
def supplyReduce():
 
def supplyReduce():
 
     global cups, lemons, ice
 
     global cups, lemons, ice
Line 86: Line 164:
 
     supplyReduce()
 
     supplyReduce()
 
     today += 1
 
     today += 1
   
+
</pre>
</code>
 

Revision as of 12:02, 20 April 2009

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.

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

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