U4 Practice PT - Decision Maker App Planning Guide: Project Description
U4 Practice PT - Decision Maker App Planning Guide: Project Description
Project Description
For this project you will create an app that helps a user make a decision. Your app must take in at least one number
and one string from the user that will help to make the decision. All of this information will be used as part of the
decision making process. In addition, your code must include at least one function used to update the screen.
App Requirements
● At least one number and one string used to make and report a decision with a conditional statement
● A function which updates the screen and is called at least twice in the program
● Conditional statement includes at least one logical operator (&&, || or !)
● There are at least three different possible output answers (i.e. “Yes, you can adopt a cat!”, “No, you can’t adopt
a cat”, and “Congratulations, you can adopt a kitten!).
● Every function contains a comment explaining purpose and functionality
● Clear and easy to navigate user interface
● Cleanly written code which is free of errors
Steps
● Brainstorm an app idea for making a decision
● Interview classmates for ideas on what information would be needed to make the decision
● Draft a flowchart of the decision making process
● Design your app’s user interface
● Design and program your app in App Lab
● Collect feedback from your classmates and update your app
● Record a screen capture of your app being used
● Submit your final app
Investigate
Step 1. Brainstorm App Ideas: Your app should be designed to help a user make a decision. For this project your
user is your classmate. The decision can be small or big, like what to eat for lunch or where to apply for a job. Keep in
mind how your idea might help solve a problem for your user.
Idea 2: Blackjack
Step 2. Choose One Idea: Talk through your ideas with a classmate. Pick the one that you are most interested in.
Step 3. Survey Your Classmates: To design your app you’ll need to understand your users. For this project your user
is your classmate, and you’ll need to understand what information will be needed to make the decision.
Find two classmates and talk to them about your topic for a couple minutes. Then fill in this table.
Joshua What skins are available, how much money is needed to open a crate, and the
probabilities of obtaining different rarity skins.
Kim The starting amount of money, the cost per crate, and the outcomes based on how
much money the user earns or loses during gameplay.
Example:
Component Purpose
2
Start your flowchart with a question. What decision are you trying to make?
Baggies are used to represent the variables which store information. In your flowchart,
draw a small rectangle for the variables.
A diamond represents a decision point, based on the original question. Write the
Boolean expression that will be used to determine the answer.
True and False arrows designate the paths taken, based on the result of a decision
(diamond). Note that every decision may have only 2 possible paths that result from it,
one for true and one for false.
A simple arrow indicates that we are moving from one action to the next without
considering any decision. These will generally be used to link a set of actions to be
completed one after the other.
Flowchart
3
Design
Step 6. Design User Interface: In the space below draw a rough sketch of your user interface. This means you should
include all the buttons, text, and images that the user will be able to use. Write notes or draw arrows showing how
different user interface elements should work.
Note: There are no screen requirements for this app - you may use one or more screens.
4
Prototype
Step 7. Start Building Your App: Build your app. Along the way make sure you:
● Use the design you drew as a starting point, but it’s OK to update as you go.
● Reference the flow chart when setting up your conditional statements
● Use your debugging skills to check that your app is working
● Comment all functions explaining purpose (what does it do) and functionality (how does it work)
Test
Step 8. Testing: You will need to test your app to make sure it works as expected. To do that find at least two
classmates to use your app. While they use the app watch them to see if anything is broken or confusing. Afterwards
ask them to share any specific improvements they’d like to see.
Name Things that could be improved based on Improvements this person recommends
watching them use the app
Joshua Difficulty understanding crate costs and skin Add a clearer breakdown of crate costs and
values display probabilities on the screen
Kim Confusion over how to win or lose the game Add an explanation of the win/lose conditions at
the start of the app
Step 9. Pick Improvements: Pick at least one improvement you plan to make to your app based on feedback you
collected from your classmate.
Improvement 1: Add an explanation of the win/lose conditions at the start of the app
Improvement 2 (Optional): Add a clearer breakdown of crate costs and display probabilities on the screen
___________________________________________________________________________________
5
Step 10: Complete Your App: Finish your app!
Step 11: Record Video. Record a video that demonstrates the running of your program as described below. Your
video may NOT contain voice narration and must be no more than 1 minute in length
Explain how the program determines which block of code to execute. What are the possible outcomes of
this conditional statement, and how do they affect the program?
(Approx 150 words)
The program uses the checkGameState function to evaluate the user's current balance (money) against the
cost of crates (cost). Based on these criteria, the program executes different blocks of code to determine the
game result. For instance:
● If money < cost && money > 0, the program sets the result to "Broke & Homeless" and assigns the
status 'Lose'.
● If money > 1000000, the program sets the result to "Millionaire & Bugatti Owner" and assigns the
status 'Win'.
● If money <= 0, the program sets the result to "Neutral State. Restart the game!" and assigns the
status 'Neutral'.
These outcomes affect the gameplay by displaying different end results or allowing the user to continue
playing.
Question 2:
Consider a procedure in your program that performs a specific task.
Explain how this procedure helps manage the complexity of your program. Describe how using this
procedure improves the organization of your code and makes it easier to modify or extend.
(Approx 150 words)
The updateMoneyLabel function is a procedure designed to update the user's current balance on the
screen. This function simplifies the program by centralizing the code that updates the UI whenever the
6
user's balance changes. By calling this function after each crate opening or transaction, the app ensures
that the displayed money value is always accurate.
Using this procedure improves code organization by reducing repetition; instead of updating the label in
multiple places, the program calls updateMoneyLabel. This approach also makes the code easier to modify;
if changes are needed, such as formatting the money display, the developer can update just this function
without altering multiple sections of the program.
7
Rubric - Checklist
The User Interface is easy to navigate, it's clear how the app is
User Interface designed to be used, and all text is readable.
At least one number and one string are each stored in a variable
Code: Variables and used to make a decision.