Ibnovate Course 1 · The Young Builders
⏱ 60 minLive session · ages 8–11

Session 17 — Levels & Challenge

Duration: 60 min · Format: live online · Ages: 8–11

Session goal: by the end, students can use if/then decisions, detect collisions with the "touching" block, and give a game real win and lose conditions.

Before class — prep (5 min)

Agenda

Time Segment
0:00 Hook — how does a game know you won? (5 min)
0:05 Teach — if/then makes decisions (12 min)
0:17 Teach — touching, collisions, win & lose (13 min)
0:30 Activity — add scoring, collisions, and a game over (20 min)
0:50 Check for understanding (7 min)
0:57 Wrap-up + homework (3 min)

0:00 · Hook (5 min)

Ask the class and take a few answers (chat or unmute):

Let them guess, then reveal: today your game learns to make decisions. It will check "is this touching that?" and then choose what to do — score, lose a life, win, or end.


0:05 · Teach — If/then makes decisions (12 min)

Explain, on your shared Scratch screen:

Demo in Scratch:

⚠ Watch for a runaway score: because the loop checks constantly, one touch can add hundreds of points. Fix it live by adding, right after scoring, a reset — go to x: 0 y: 150 (send the apple back to the top) so it's no longer touching. This is a great teaching moment.

Ask: "The diamond slot needs a question that is true or false. Is 'the apple' a good fit for it? What about 'the apple is touching the basket'?" (Answer: the second — it can be true or false.)


0:17 · Teach — Touching, collisions, win & lose (13 min)

Explain: the touching [ ]? block (Sensing) is how a game notices collisions — two things bumping into each other. It's the heart of catching, hitting, and dodging.

Picture the collision logic: if touching the wall, react; otherwise keep moving.

Diagram of collision logic: if a sprite is touching the wall it reacts, otherwise it keeps moving

Demo in Scratch, building live:

Now making it harder (levels):

Key point to land: if/then + touching lets a game react — that's what turns moving sprites into a real, winnable, losable game.

Ask the class: "To make the game harder, should the apple fall faster or slower? What block changes that?" (Answer: faster; change the change y by number to a bigger negative.)


0:30 · Activity (20 min)

Students upgrade their catch game. Screen-share your version as a reference.

Build this, step by step:

  1. On the falling sprite: wrap the fall in foreverchange y by -5.
  2. Inside the loop, add if <touching [your catcher sprite]?> thenchange [Score] by 1, play sound [Pop], go to x: (pick random -200 to 200) y: 150.
  3. Add if <y < -150> thenchange [Lives] by -1go to x: (pick random -200 to 200) y: 150 (missed it — reset).
  4. Make sure Lives starts at 3 and Score starts at 0 on the green flag.
  5. Add a lose check: if <Lives = 0> thenbroadcast [game over]stop [all].
  6. Add a win check: if <Score = 10> thenbroadcast [you win]stop [all].
  7. Add a sprite that shows "Game Over!" on when I receive [game over] and "You Win!" on when I receive [you win].
  8. Test: catch apples to win, miss three to lose.

Circulate for: - Scores that shoot up by hundreds — the caught sprite isn't resetting, so it stays touching. Add the respawn line. - The if/then placed outside a loop, so it only checks once — move it inside the forever loop. - Win/lose messages that never show — check the broadcast and when I receive names match, and that stop all isn't stopping the message sprite before it can say anything (put the say before stop all if needed).

Encourage: ask students to change the win score or starting lives to tune how hard their game feels.


0:50 · Check for understanding (7 min)

Ask these aloud or drop them in the chat. Answer key (for you):

  1. What does an if/then block do? → It checks a true-or-false question; if it's true, it runs the blocks inside; if not, it skips them.
  2. Which block lets a game notice two sprites bumping into each other? → The touching [ ]? block (Sensing) — it detects a collision.
  3. How could you make a "You Win!" message appear when the score reaches 10?if <Score = 10> thenbroadcast [you win]; a sprite with when I receive [you win] says "You Win!".

0:57 · Wrap-up + homework (3 min)


Teaching notes

Practice set

Assign in class or as homework. Answers are for you, after the arrow.

  1. Make the score go up only when the falling sprite touches the catcher. → Inside a forever loop: if <touching [catcher]?> then change [Score] by 1.
  2. Stop one touch from scoring hundreds of points. → After scoring, move the sprite away so it isn't touching anymore: go to x: (pick random -200 to 200) y: 150.
  3. Take away a life when the sprite reaches the bottom of the screen.if <y < -150> then change [Lives] by -1 then reset its position to the top.
  4. End the game when lives reach 0.if <Lives = 0> then broadcast [game over]stop [all]; a sprite says "Game Over!" on when I receive [game over].
  5. Show "You Win!" when the score reaches 10.if <Score = 10> then broadcast [you win]stop [all]; a sprite says "You Win!".
  6. Make the game get harder as the player scores. → Store the fall speed in a Speed variable and change [Speed] by -1 every few points, so the sprite falls faster over time.

Going deeper (optional)

Common mistakes & fixes

Vocabulary

Term Meaning
If/then A decision: if a question is true, do these blocks
Condition The true-or-false question inside an if/then
Touching A sensing block that detects a collision
Collision When two sprites bump into each other
Win / lose condition The rule that decides when the game is won or over

Resources

Next session

Session 18 — Design & Showcase Your Game: students plan their own small game, build it using everything from this unit, playtest with a partner, and present it to the class — the unit's build project.

Ibnovate · Build · Innovate
Type to search · Esc to close
Welcome back
Sign in to continue building.
Accounts are created by Ibnovate — ask your instructor for your login.
🔒