You have built an app that draws and an app that moves. Now build a game — your choice of five — with nothing but the blocks you already know, plus two or three new ones you'll meet along the way.
Pick ONE of five5 class days100 pointsPlan before you build.aia, and turn in the reflection.Three honest questions. Nobody sees your answers but you.
set Happy.X to (Happy.X + xAccel) was…if / else block that compares two numbers…Tap a game to see exactly what it needs. Green = blocks you already used. Orange = new to you.
A mole pops up somewhere new on the canvas every second. Tap it: +1. Tap the grass: that's a miss. Reset starts over.
This is Happy Accelerometer's cousin: same Canvas, same ImageSprite, same score variable. The new idea is a Clock that fires on its own instead of waiting for a tilt.
TimerInterval to 1000 = fires once a second.Canvas.Width − Mole.Width.)reset.moveMole that is called from the Timer and from Touched (so it jumps away when you hit it).score, misses, both 0.moveMole: MoveTo random X, random Y. Test: tap Timer on, mole should hop.reset, wire the Button. Done — now stretch.TimerEnabled is unchecked, or the Timer block is empty.touchedAnySprite check is missing.set Label.Text.Clock1.TimerInterval smaller (minimum 300).Gifts fall from the top. Slide the basket left and right — by tilting the phone or dragging — to catch them. Miss one and it counts against you.
Pick this if Happy Accelerometer clicked for you. It is the same movement block, plus a second sprite that moves by itself.
currentX if you preferreset procedurespeed variable so you can tune difficulty in one placespeed to Gift.Y every tick).dropNewGift.)dropNewGift.reset procedure.dropNewGift: set Gift.Y to 0, Gift.X to random.call Basket.Bounce / MoveTo inside it.Three buttons. You pick, the phone picks at random, the app says who won and keeps score. First to 5 wins the match.
No canvas, no sprites. This one is all about decisions: an if / else if / else chain that decides the winner. Pick this if you want to nail 1.1.3 selection logic.
you, phone scores; set global you to (global you + 1)play with 1, 2 or 3play with a different parameter value.reset procedure.you = 0, phone = 0.play(mine): set local phonePick to random 1–3, show it.= check is comparing text "1" to number 1 — use the Math = block, not the Text compare.The phone picks a secret number. Type a guess, tap Guess, and it tells you higher or lower until you get it — and counts your tries.
The smallest game here, but it has the most input handling. What if they type nothing? Letters? 500? A good version handles all three.
secret, guesses; read → change → write for the counternewGame procedureNumbersOnly on in the Designer; read it with TextBox1.Text< and >Screen1.Initialize — and a different one each time you tap New Game (so: a newGame procedure, called from both).secret = 0, guesses = 0.newGame: secret = random 1–100, guesses = 0, clear Labels, enable Guess button. Call it from Screen1.Initialize.Two players, one phone. Tap a square to place X or O, the app takes turns, spots a win on any of the eight lines, calls a draw when the board fills, and keeps score.
No canvas, no sensors. The whole game is one question asked eight times: "are these three squares the same?" You write that question once as a procedure. Pick this if you liked the if/else logic in 1.1.3 and want more of it.
turn ("X" or "O"), moves, two score countersresetthree(a, b, c) returns true only when all three match and aren't blank. checkWin uses it for all eight lines (3 rows, 3 columns, 2 diagonals).reset procedure. Scores survive New Game.turn = "X", moves = 0, xWins = 0, oWins = 0.three(a,b,c) with result. Procedure checkWin with result: eight three calls joined by or.afterMove: moves + 1; if checkWin → winner, lock, score; else if moves = 9 → draw; else swap turn.reset + New Game button.three is missing the a ≠ "" check.if B.Text = "" guard is missing on that button.when any Button.Click block (Any component drawer at the bottom of the Blocks list).Each day has a gate. If you're behind the gate, that's what you do first the next day.
Choose your game. Fill the plan sheet below. Components, WHEN/DO table, variables, procedure names.
Every component placed and named. ONE event handler working on the phone (the mole hops, the gift falls, a button does something).
Core loop works. Score goes up. Procedure exists and is called.
Reset works. Edge cases handled. Break it on purpose, log three bugs. Stretch goals only after M5.
60-second demo to the class. Export the .aia. Submit the reflection on Classroom.
Fill this out, tap Copy my plan, paste it into the Classroom assignment "Day 1 — Game Plan." Then show it to Mr. Babb before you open App Inventor.
| Name you'll give it | Type | Its job |
|---|---|---|
| WHEN (the event) | DO (what happens) |
|---|---|
| Part | What earns full points | Pts |
|---|---|---|
| Plan sheet (Day 1) | Complete, specific, signed before building. Components named, 3+ WHEN/DO rows, variables and procedures listed, a real risk. | 15 |
| Must-haves M1–M5 | 8 points each. Works on the phone during the demo, not just in your description. A must-have that "mostly works" is 4. | 40 |
| Code quality | Repeated blocks live in a procedure. Variables and components have real names (score, not global1; Mole, not ImageSprite1). No empty sockets. No dead blocks floating in the workspace. | 15 |
| Bug log | Three bugs: what the app did, what you thought was wrong, what was actually wrong, how you fixed it. Quality of the diagnosis is the grade, not the count. | 10 |
| Demo + reflection | 60-second demo: show it working, show one thing that broke. Reflection (3 questions on Classroom) uses specific details from your app. | 20 |
YourGame.aia. Attach it to the Classroom assignment.