B. Program Description for Developers

Assumptions

  • The program has been deployed into the Proteus
  • The user can reasonably read and comprehend the instructions and menus
  • The Proteus is accompanied with a stylus that the user can use

Important Variables and Their Uses

  • FEHIcon::Icon IceCream, Milkshake, Cherry, Chocolate, etc.
    • These variables are buttons that are used when the user needs to guess the order.
  • points
    • keeps track of every time the button pressed corresponds to the randomly generated dessert, flavor, or topping
  • FEHIcon::Icon menu[5]
    • array of 5 icons for the starting menu
  • char menu_labels
    • labels for each button in the menu
  • type
    • randomly generated integer that corresponds to ice cream if the value is 0 or a milkshake if the value is 1
  • flav
    • randomly generated integer that corresponds to flavors
  • top
    • randomly generated integer that corresponds to toppings
  • dessert
    • variable that is set to true to take touch input when user selects the type of dessert
  • flavor
    • variable that is set to true to take touch input when user selects the type of flavor
  • topping
    • variable that is set to true to take touch input when user selects the type of topping
  • perfects
    • variable that keeps track of the number of perfectly created orders
  • wrong
    • variable that keeps track of any wrong orders
  • totalpoints
    • variable that accumulates the total number of points

Functions

  • int TypeGen();
    • USE: Generates 2 random numbers of value 0 or 1 and returns this number
    • EXAMPLE: Once the random  number has been generated it can be used to assign a number to a specific dessert, like ice cream or milkshake
  •   int FlavGen();
    • USE: Generates 2 random numbers of value 0 or 1 and returns this number
    • EXAMPLE: Once the random  number has been generated it can be used to assign a number to a specific flavor, like chocolate, lemon, or cotton candy
  • int TopGen();
    • USE: Generates 2 random numbers of value 0 or 1 and returns this number
    • EXAMPLE: Once the random  number has been generated it can be used to assign a number to a specific topping, like cherry or oreos
  • void DrawType();
    • USE: Draw 2 buttons on the screen and images in each button
    • EXAMPLE: Use this function to draw ice cream and milkshake images in each dessert button so that they can be used in the guessing part of the game
  • void DrawFlavors();
    • USE: Draw 6 buttons on the screen and colors in each button
    • EXAMPLE: Use this function to draw colors in each flavor button so that they can be used in the guessing part of the game
  • void DrawToppings();
    • USE: Draw 3 buttons on the screen and images in each button
    • EXAMPLE: Use this function to draw images in each topping button so that they can be used in the guessing part of the game (cherry, oreos, sprinkles)

Program Performance

  •  The program performed as intended with the ability to make 10 orders
  • The program has a short delay in between each message so the user can know if they recreated the order correctly

Limitations

  • The colors are often difficult to differentiate between
  • The game does not have the ability to reset statistics or view high scores
  • A touch that is too long will sometimes result in an unintended guess and therefore a loss of points