WEEK 4

SMART
SPRITES

CONDITIONALS & DEBUGGING

TODAY WE'RE LEARNING TO

MAKE SPRITES
THAT THINK
AND MAKE
DECISIONS

BUILD GAMES
THAT KNOW
WHEN YOU
WIN OR LOSE

BECOME
DEBUGGING
DETECTIVES

CREATE
ENEMIES
THAT REACT
TO THE
PLAYER

HOW DOES THE COMPUTER KNOW YOU WON?

THINK ABOUT GAMES YOU PLAY:

HOW DOES
IT KNOW
YOU CAUGHT
ALL THE
COINS?

HOW DOES
IT KNOW
YOU TOUCHED
THE LAVA?

HOW DOES
IT KNOW
WHEN TIME
RAN OUT?

ANSWER: IT'S ALWAYS CHECKING WITH IF/THEN BLOCKS!

WHAT ARE CONDITIONALS?

CONDITIONALS = IF/THEN DECISIONS

IN REAL LIFE:

IF RAINING
THEN BRING
UMBRELLA

IF HUNGRY
THEN EAT
A SNACK

IN SCRATCH:

IF TOUCHING
RED THEN
GAME OVER

IF SCORE > 10
THEN YOU WIN

DEMO: IF/THEN SENSING

WATCH ME CODE!

WHEN GREEN
FLAG CLICKED

FOREVER

IF <TOUCHING
COLOR [RED]?>
THEN

SAY [GAME OVER!]
FOR (2) SECONDS

STOP [ALL]

KEEPS CHECKING FOREVER UNTIL THE SPRITE TOUCHES RED!

DEMO: GAME OVER SEQUENCE

MAKING IT FEEL REAL!

WHEN I RECEIVE
[PLAYER LOST]

SWITCH COSTUME
TO [SAD]

SAY [YOU LOST!]
FOR (2) SECONDS

CHANGE [SCORE]
BY (-5)

GO TO X: (0) Y: (0)

BROADCAST
[RESTART GAME]

MULTIPLE THINGS HAPPEN WHEN YOU LOSE!

DEMO: WIN CONDITION

HOW TO DETECT A WIN!

CHECK FOR WIN

WHEN GREEN
FLAG CLICKED

FOREVER

IF <(SCORE)
> [50]> THEN

BROADCAST
[PLAYER WON]

CELEBRATE!

WHEN I RECEIVE
[PLAYER WON]

SWITCH COSTUME
TO [HAPPY]

SAY [YOU WON!]
FOR (3) SECONDS

STOP [ALL]

THE TRUTH ABOUT CODING

FAILURE IS NORMAL!

PRO CODERS
SPEND 50%
OF THEIR
TIME
DEBUGGING

THAT MEANS
HALF OF
CODING IS
FIXING
MISTAKES!

BUGS ARE NOT MISTAKES - THEY'RE CLUES!
EVERY ERROR TELLS YOU SOMETHING ABOUT YOUR CODE.

FAMOUS BUG STORY

IN 1947 A REAL MOTH BROKE A COMPUTER!

THAT'S WHERE
THE WORD
"BUG" COMES
FROM!

TODAY'S BUGS AREN'T MOTHS - THEY'RE:

MISSING
BLOCKS

WRONG
ORDER

BLOCKS NOT
CONNECTED

WRONG
SPRITE

THE 3-STEP DEBUG METHOD

STEP 1: READ
READ YOUR
CODE OUT
LOUD
SAY WHAT
YOU THINK
IT DOES

STEP 2: CHECK
TEST ONE
BLOCK AT
A TIME
WHERE DOES
IT BREAK?

STEP 3: TEST
CHANGE ONE
THING
RUN IT AGAIN
BETTER OR
WORSE?

STEP 1: READ OUT LOUD

EXAMPLE CODE:

WHEN GREEN
FLAG CLICKED

FOREVER

MOVE (10) STEPS

IF ON EDGE,
BOUNCE

"WHEN I CLICK GREEN FLAG, THE SPRITE WILL KEEP
MOVING 10 STEPS AND BOUNCING AT THE EDGE FOREVER."
DOES THAT MATCH WHAT YOU WANT IT TO DO?

STEP 2: CHECK ONE BLOCK AT A TIME

DISCONNECT BLOCKS AND TEST EACH PART

TEST JUST
THE MOVEMENT
DOES IT
MOVE?

ADD THE
FOREVER LOOP
DOES IT
KEEP MOVING?

ADD THE
BOUNCE
DOES IT
BOUNCE?

STEP 3: TEST SMALL CHANGES

IF SPRITE IS MOVING TOO FAST:

DON'T DELETE
EVERYTHING
AND START
OVER!

DO CHANGE
ONE NUMBER
AT A TIME
AND TEST!

TRY MOVE (5) INSTEAD OF (10) - STILL TOO FAST?
TRY MOVE (3) - TEST AGAIN!
CHANGE ONE THING - TEST - REPEAT

DEBUGGING PRACTICE

YOU'LL GET A BROKEN PROJECT!

1. OPEN THE
PROJECT

2. TRY TO
RUN IT
WHAT'S
WRONG?

3. USE THE
3-STEP
DEBUG
METHOD

4. FIX ALL
3 BUGS!

TIME: 8 MINUTES

COMMON BUGS YOU'LL FIND

BUG TYPE 1
MISSING
FOREVER LOOP
SPRITE MOVES
ONCE AND
STOPS

BUG TYPE 2
IF BLOCK
OUTSIDE
THE LOOP
NEVER
CHECKS!

BUG TYPE 3
WRONG SPRITE
DOING THE
ACTION
CODE ON
BACKGROUND!

DEBUGGING DETECTIVE CHECKLIST

WHEN YOUR CODE DOESN'T WORK, CHECK:

GREEN FLAG
BLOCK AT
THE TOP?

FOREVER LOOP
FOR THINGS
THAT KEEP
HAPPENING?

IF BLOCKS
INSIDE THE
FOREVER
LOOP?

ALL BLOCKS
CONNECTED?
NO GAPS!

KEEP THIS CHECKLIST IN YOUR MIND!

GUIDED BUILD: WIN/LOSE

NOW YOU CODE WITH ME!

ADD A WAY
TO LOSE
(TOUCH THE
ENEMY)

ADD A WAY
TO WIN
(COLLECT 5
STARS)

ADD MESSAGES
THAT TELL
YOU WHAT
HAPPENED

FOLLOW ALONG STEP-BY-STEP!

STEP 1: SET UP VARIABLES

CLICK "VARIABLES" > "MAKE A VARIABLE"

CREATE
VARIABLE:
"SCORE"
FOR ALL
SPRITES

CREATE
VARIABLE:
"GAME OVER"
FOR ALL
SPRITES

CHECK THE BOXES SO THEY SHOW ON THE STAGE

STEP 2: RESET AT START

ON THE PLAYER SPRITE:

WHEN GREEN
FLAG CLICKED

SET [SCORE] TO (0)

SET [GAME OVER]
TO [NO]

GO TO X: (-200)
Y: (0)

WHY? START FRESH EVERY GAME!

STEP 3: LOSE CONDITION

ON THE PLAYER SPRITE: TOUCH ENEMY = LOSE!

WHEN GREEN
FLAG CLICKED

FOREVER

IF <TOUCHING
[ENEMY]?> THEN

SET [GAME OVER]
TO [YES]

BROADCAST
[PLAYER LOST]

STEP 4: HANDLE LOSING

STILL ON PLAYER SPRITE:

WHEN I RECEIVE
[PLAYER LOST]

SAY [OH NO!]
FOR (2) SECONDS

HIDE

STOP [OTHER
SCRIPTS IN
SPRITE]

PLAYER SAYS "OH NO!" - DISAPPEARS - MOVEMENT STOPS

STEP 5: COLLECT STARS

ON THE STAR SPRITE:

WHEN GREEN
FLAG CLICKED

FOREVER

IF <TOUCHING
[PLAYER]?> THEN

CHANGE [SCORE]
BY (1)

HIDE

MAKE 5 STARS BY DUPLICATING THIS SPRITE!

STEP 6: DETECT VICTORY

ON THE PLAYER SPRITE:

CHECK SCORE

WHEN GREEN
FLAG CLICKED

FOREVER

IF <(SCORE)
= [5]> THEN

BROADCAST
[PLAYER WON]

CELEBRATE!

WHEN I RECEIVE
[PLAYER WON]

SAY [I WON!]
FOR (3) SECONDS

GLIDE (1) SECS
TO X: (0) Y: (0)

COLLECT 5 STARS AND SEE WHAT HAPPENS!

CHECKPOINT: TEST YOUR GAME

TRY THESE THINGS:

CLICK GREEN
FLAG - DOES
SCORE START
AT 0?

TOUCH A
STAR - DOES
SCORE GO
UP?

TOUCH THE
ENEMY - DO
YOU LOSE?

COLLECT ALL
5 STARS -
DO YOU WIN?

IF SOMETHING DOESN'T WORK:
USE THE 3-STEP DEBUG METHOD!

ADDING A SMART ENEMY

ENEMIES THAT CHASE YOU! ON THE ENEMY SPRITE:

WHEN GREEN
FLAG CLICKED

FOREVER

POINT TOWARDS
[PLAYER]

MOVE (2) STEPS

IF ON EDGE,
BOUNCE

IF <TOUCHING
[PLAYER]?> THEN
BROADCAST
[PLAYER LOST]

EXTENSION: MULTIPLE ENEMIES

WANT IT HARDER?

1. DUPLICATE
THE ENEMY
SPRITE

2. PLACE
THEM IN
DIFFERENT
SPOTS

3. GIVE THEM
DIFFERENT
SPEEDS!

ENEMY1: MOVE (2) STEPS - ENEMY2: MOVE (3) STEPS
ENEMY3: MOVE (1) STEPS - FAST AND SLOW ENEMIES!

MAKER TIME CHALLENGES

CHOOSE YOUR CHALLENGE LEVEL!

LEVEL 1-2
ADD SOUND
EFFECTS TO
WIN/LOSE
ENEMY
CHANGES
COLOR

LEVEL 3
ADD A TIMER
BEAT THE
GAME IN 30
SECONDS!

LEVEL 4-5
SAFE ZONES
(BLUE =
SAFETY)
PATROLLING
ENEMIES

BUG HUNT PARTNER ACTIVITY

1. FIND A
PARTNER

2. SWAP
COMPUTERS

3. ONE
PERSON
HIDES 2-3
BUGS

4. OTHER
PERSON
DEBUGS
WITH THE
3-STEP
METHOD

TIME: 10 MINUTES - THEN SWITCH ROLES!

BUG HUNT TIPS

GOOD BUGS TO CREATE:

TAKE OUT
THE FOREVER
LOOP

MOVE THE IF
BLOCK
OUTSIDE
THE LOOP

CHANGE
SCORE TO
COUNT
BACKWARDS

HIDE THE
BROADCAST
BLOCK

DON'T MAKE IT IMPOSSIBLE - MAKE IT A GOOD PUZZLE!

REFLECTION TIME

THINK ABOUT THESE QUESTIONS:

WHAT'S YOUR
DEBUGGING
STRATEGY
NOW?

WHAT'S THE
HARDEST BUG
YOU FIXED
TODAY?

HOW DID
IF/THEN
BLOCKS MAKE
YOUR GAME
SMARTER?

SHARE WITH A PARTNER!

WHAT WE LEARNED TODAY

IF/THEN
BLOCKS MAKE
SPRITES
DECIDE

GAME OVER
USES
BROADCASTS

DEBUGGING
IS A SKILL
YOU CAN
PRACTICE

3-STEP
METHOD:
READ CHECK
TEST

YOU'RE BECOMING REAL CODERS!

NEXT WEEK PREVIEW

WEEK 5: "KEEPING SCORE"

VARIABLES
THAT
REMEMBER
NUMBERS

SCORE
SYSTEMS

LIVES
AND
HEALTH

TIMERS
MAKING
GAMES
FEEL REAL!

HOMEWORK (OPTIONAL): ADD MORE IF/THEN BLOCKS
TO YOUR GAME. WHAT ELSE CAN YOUR SPRITES REACT TO?

GALLERY WALK

LEAVE YOUR PROJECT OPEN ON YOUR SCREEN!

WALK AROUND
AND TRY 3
CLASSMATES'
GAMES

FOR EACH GAME:

PLAY IT!

FIND ONE
IF/THEN
CONDITION
THEY USED

GIVE THEM
ONE
COMPLIMENT

TIME: 10 MINUTES

SAVE YOUR WORK!

SAVE WITH A DESCRIPTIVE NAME:

GOOD NAMES
"MAZE CHASE
WITH SMART
ENEMY"
"STAR
COLLECTOR
WIN/LOSE"

BAD NAMES
"MY PROJECT"
"UNTITLED"

YOU'LL WANT TO FIND IT NEXT WEEK!

GREAT WORK, MAKERS! SEE YOU NEXT WEEK!

REMEMBER: EVERY BUG YOU FIX MAKES YOU A BETTER CODER.