Create a Quiz Game in Scratch | Spelling Test in Scratch | Picture Identification in Scratch

Scratch Tutorial

Introduction: Create a Quiz Game in Scratch

Want to make learning spelling fun, visual, and interactive? In this Scratch tutorial, you'll learn how to make a spelling quiz game in Scratch using picture identification, text-to-speech, and real-time feedback. Whether you're building a classroom tool, an educational game, or a personal project, this step-by-step guide will help you create a spelling test that talks, shows images, scores answers, and responds to player input.

Using Scratch programming, we'll combine core coding concepts like variables, lists, broadcasts, and conditional logic, while enhancing accessibility with Scratch's Text to Speech extension. You'll also discover how to give hints, manage game flow, and reward correct answers with animations or sounds.

By the end of this tutorial, you'll know how to create a quiz game in Scratch that's perfect for kids, teachers, students, or anyone learning to spell.

What You Will Learn:

This comprehensive guide teaches you how to:

  • ✅ Create a spelling quiz game in Scratch with picture identification
  • ✅ Use text-to-speech for voice feedback and accessibility
  • ✅ Program variables, lists, and broadcasts for game logic
  • ✅ Handle user input and provide real-time feedback
  • ✅ Add enhancements like hints, timers, and randomization

Why Spelling Quiz/Picture Identification in Scratch?

  • Builds vocabulary, memory, spelling accuracy.
  • Visual association: seeing an image and spelling its name helps learners.
  • Interactive feedback (correct / try again) increases engagement.
  • Using text-to-speech improves accessibility and helps pronunciation.

Prerequisites

Before starting, you need:

  • A Scratch 3.0 project (online or offline).
  • Familiarity with basic Scratch blocks: events, control, sensing, looks, variables, lists.
  • Use of Text to Speech extension in Scratch.

Technical Background: Text-to-Speech & Broadcasts in Scratch

Some key features used in this game:

  • Text to Speech extension in Scratch 3.x allows you to have sprites speak text using synthesized voices.
  • Broadcast / When I receive messages: used to coordinate between sprites/backdrops when you want to change images, pick a "new word", etc.

Spelling Quiz Game in Scratch: Step-by-Step Coding

Scenario 1: Setting Up Backdrop, Sprites, Word Pictures

  • Backdrops: Import your own image for the "classroom" background; also choose another like a "spotlight" or celebratory backdrop for the end.
  • Sprites: A "teacher" character / sprite which will speak/ask questions and give feedback. Picture sprites: e.g. cat, dog, elephant, banana, balloon, butterfly, cake etc. These are the images for picture identification.
  • Costumes / Images: Ensure each word has one image sprite. If there are costumes for that sprite, keep one per item to avoid complexity.

Scenario 2: Variables & Lists

You need the following:

  • score: numeric variable, shows how many correct answers so far.
  • correct_word: the word you are expecting the user to spell.
  • correct_index: which word/image you're currently on in the quiz.
  • answer: what the user typed.
  • A list (e.g. named word_list) containing all the correct spellings (strings) in the same order as their pictures.

Make sure optionally to hide some variables (those that clutter the screen) using Scratch's variable visibility toggle.

Scenario 3: Initialization & Game Start

When the green flag is clicked:

  • Delete all items in word_list.
  • Reset correct_index to 1.
  • Reset score to 0.
  • Maybe hide all image sprites initially.
  • Set backdrop to "classroom".
  • Teacher sprite speaks (using text to speech), "Hello, are you ready for the spell test? Press the space key."

When space key pressed:

  • Populate the word_list with items: "dog", "cat", "cake", "banana", "butterfly", "balloon" (or whatever words/images you use).
  • Broadcast a message like "NewWord" to start the quiz.

Scenario 4: Handling New Word

When "NewWord" is broadcast:

  • Set correct_word to the item at position correct_index in word_list.
  • Show the corresponding image sprite (the picture for that word). For example, if correct_word = "banana", show the banana sprite; hide others.
  • Teacher sprite (or another feedback sprite) uses text-to-speech to speak the correct_word (or "Spell this: ___").

Scenario 5: Getting User Input & Feedback Loop

  • Use "ask [] and wait" block to prompt user: e.g. "Spell this: ".
  • Then a forever loop (or loop until end) that checks:
if <(answer) = (correct_word)> then
  say "Correct!" ; speak "Correct!"
  change score by 1
  change correct_index by 1
  set answer to correct_word // to display the correct answer somewhere
  broadcast NewWord
else
  say "Try again." ; speak "Try again."
end
  • Also check: if correct_index > length of word_list then:
    • Change backdrop to spotlight (or the celebratory one).
    • Say + speak something like "You have finished all the words. Well done!"
    • Play a sound (e.g. clap).
    • Stop all scripts.

Scenario 6: Mid-Game Feedback (Optional)

  • If score = 5 (just before the end if list has 6 items), you could have teacher say / speak "You are awesome" to motivate.

Sample Code Blocks

Stage Script (Stage / Backdrop / Game Controller)

// When green flag clicked
when green flag clicked
delete all [word_list v]
set [score v] to [0]
set [correct_index v] to [1]
switch backdrop to [classroom v]
set [answer v] to []
// Use Text to Speech extension
set voice to (alto v)::tts
speak [Hello, are you ready for the spell test? Press the space key.]::tts

// When space key pressed
when [space key] pressed
add [dog] to [word_list v]
add [cat] to [word_list v]
add [cake] to [word_list v]
add [banana] to [word_list v]
add [butterfly] to [word_list v]
add [balloon] to [word_list v]
broadcast [NewWord v]

Teacher Sprite Script

when I receive [NewWord v]
set [correct_word v] to (item (correct_index) of [word_list v])
speak (join [Spell this: ] (correct_word))::tts
// optionally show text "Spell: ____" via say block

Picture Sprite (for each image)

For each picture sprite (e.g. banana, dog, etc.):

when green flag clicked
hide

when I receive [NewWord v]
if <(correct_word) = [banana]> then
  show
else
  hide
end

Similarly for other picture sprites.

User Input and Feedback (Teacher or separate sprite)

// Possibly in Teacher sprite or separate
when I receive [NewWord v]
// You may want to wait a short delay so image loads
ask [Type the spelling now:] and wait
// then in a loop:
wait until <(answer) = (correct_word) or (answer) ≠ (correct_word)>
if <(answer) = (correct_word)> then
  say [Correct!] for (2) secs
  speak [Correct!]::tts
  change [score v] by (1)
  change [correct_index v] by (1)
  if <(correct_index) > (length of [word_list v])> then
    switch backdrop to [spotlight v]
    say [You have finished all the words. Well done!] for (3) secs
    speak [You have finished all the words. Well done!]::tts
    play sound [clap v] until done
    stop [all v]
  else
    broadcast [NewWord v]
  end
else
  say [Try again.] for (2) secs
  speak [Try again.]::tts
  // loop back to asking again
end

// Additional check: if (score) = 5
if <(score) = [5]> then
  say [You are awesome!] for (2) secs
  speak [You are awesome!]::tts
end

Enhancements & Advanced Features: Scratch Spelling Quiz Game

1. Add Hint System (First Letter Reveal)

How to Do It:

  • Create a variable: wrongAttempts
  • If the answer is incorrect twice, show the first letter of the word.

Code Example:

if <(answer) = (correct word)> then
  set [wrongAttempts v] to (0)
  // correct answer logic here
else
  change [wrongAttempts v] by (1)
  if <(wrongAttempts) = (2)> then
    say (join [Hint: The word starts with ] (letter (1) of (correct word))) for (2) secs
  end
end

2. Use Different Voices for Feedback (Text-to-Speech)

How to Do It:

  • Use the set voice to block before speaking.

Code Example:

set voice to [alto v]
speak [Correct! Well done.]

set voice to [tenor v]
speak [Try again!]

3. Timed Challenge Mode

How to Do It:

  • Use a timer block.
  • Set a limit (e.g., 10 seconds per question).
  • Use reset timer at the start of each word.

Code Example:

reset timer
repeat until <(answer) = (correct word) or (timer) > 10>
  wait (0.1) seconds
end

if <(timer) > 10> then
  say [Time's up!] for (2) secs
  change [correct index v] by (1)
  broadcast [new word v]
end

4. Add Celebration Animations or Sound Effects

How to Do It:

  • Add a sprite animation (like fireworks or stars).
  • Play a celebration sound.

Code Example:

when I receive [correct answer v]
show
repeat (10)
  change y by (10)
  change color effect by (25)
end
hide
play sound [cheer v] until done

5. Show Progress Bar or Word Count

How to Do It:

  • Create a progress variable.
  • Update it as the quiz progresses.

Code Example:

set [progress v] to (join (correct index) [ / 6])
say (join [Progress: ] (progress)) for (2) secs

6. Replay Option After Game Ends

How to Do It:

  • At the end, use ask [Play again?] and wait.
  • If the answer is "yes", reset variables and restart.

Code Example:

ask [Do you want to play again? (yes/no)] and wait
if <(answer) = [yes]> then
  set [correct index v] to [1]
  set [score v] to [0]
  broadcast [new word v]
end

7. Randomize Word Order (Using Shuffle Algorithm)

How to Do It:

  • Create two lists: word list and shuffled list.
  • At the start, transfer words randomly from word list to shuffled list.

Sample Pseudocode:

repeat (length of [word list v])
  set [random index v] to (pick random (1) to (length of [word list v]))
  add (item (random index) of [word list v]) to [shuffled list v]
  delete (random index) of [word list v]
end

8. High Score Tracking (Local Session)

How to Do It:

  • Create a highScore variable.

Code Example:

if <(score) > (highScore)> then
  set [highScore v] to (score)
end

9. Mobile Friendly Input (On-Screen Keyboard)

How to Do It:

  • Create buttons (sprites) for each letter.
  • When clicked, append the letter to an input variable.

Code Example:

when this sprite clicked
set [answer v] to (join (answer) [A]) // Example for A button

Conclusion

Creating a Spelling Test Game in Scratch is a fun and powerful way to combine education with game development. You've learned how to:

  • Build a fully functional spelling quiz in Scratch
  • Use text-to-speech for accessibility and voice interaction
  • Display images for picture identification
  • Check typed answers and give instant feedback
  • Track scores, manage a word list, and enhance the game using variables, lists, and broadcasts

This project is also a fantastic foundation for other Scratch projects, like math quizzes, language learning games, or picture-based storytelling.

Call to Action

Learn More with Kodex Academy

At Kodex Academy, we're passionate about helping students learn coding in creative ways. This project teaches more than Scratch—it empowers young minds to build tools that work in the real world.

Explore more:

Stay updated with new content, free tutorials, and coding challenges!