Difference between revisions of "Lemonade Stand"

From Sugar Labs
Jump to navigation Jump to search
Line 29: Line 29:
 
==Potential Problems==
 
==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.
 
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<br>
 
Perishable resources<br>
 
Variation of prices (both materials and final product)<br>
 
  
 
==Wishlist Ideas==
 
==Wishlist Ideas==
 
Weather patterns impacting sales<br>
 
Weather patterns impacting sales<br>
 
Making change (introduction to currency/fractions/small decimals)<br>
 
Making change (introduction to currency/fractions/small decimals)<br>
Advanced mode: changing the recipie for your "lemonade"<br>
+
Advanced mode: changing the recipe for your "lemonade"<br>
 
Bargaining/haggling<br>
 
Bargaining/haggling<br>
 
Random events that may influence supplies and/or cost and/or customers<br>
 
Random events that may influence supplies and/or cost and/or customers<br>
 
Potential use of network, competitive or cooperative modes<br>
 
Potential use of network, competitive or cooperative modes<br>
  
===Cool Random Events===
+
Cool Random Events:
  
Ants steal your supplys
+
Ants steal your supplies
     -10% suger
+
     -10% sugar
 
A lemon truck crashes in front of your stand
 
A lemon truck crashes in front of your stand
 
     +10 lemons
 
     +10 lemons
Line 157: Line 152:
 
==Design Decisions==
 
==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.
 
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.
 +
 +
==Contacts==
 +
[[Anthony King|User:Epsilon748]]

Revision as of 12:33, 28 April 2009

Group Members

Description

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. The game is designed to incorporate money and fractional math skills to teach basic operations.

We plan to begin with a basic framework, e.g. text based command line, and work up based on free time. Ideally, the game will consist of graphics and a refined GUI front end, similar in look to the currently available flash implementations of Lemonade Stand (although more simplistic, being based in Python).

Localization will be implemented in the final phase, with the stand being written to use more regional ingredients and products.

Goals

We're looking to create a workable prototype with the ability to buy materials and sell a product.

Other goals include:

- Creating a GUI based game
- Incorporating counting of money (bills and coins) to make change
- Creating seasons to vary prices and product demand
- Possibly making materials perishable to increase difficulty
- Making an intuitive program that can be easily learned, and which has replay value

However, the most important goal is to have a working game, while possibly not feature complete, does function as intended.

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 recipe 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

Cool Random Events:

Ants steal your supplies

   -10% sugar

A lemon truck crashes in front of your stand

   +10 lemons



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

name = 'Lemonade Stand'

print 'Welcome to ' + name


def take_input(text, default = 0):
    try:
        in_text = input(text+" ["+`default`+"]: ")
    except:
        return default
    if in_text < 0:
        in_text = 0
    
    return in_text

def random_event( ):
    

# 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 would you like to play for?", 30)

for day in range(1, num_days + 1):

    print ""
    print "____________________"
    print "     Day number " + `day`
    print "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" 
    print ""
    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 = max(min(today, requested_sales),0)

    # 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!"


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.

Contacts

User:Epsilon748