Introduction: Create a Quiz Game in Scratch
Watch the video demo here – Create a Quiz Game in Scratch | Spelling Test in Scratch | Picture Identification 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.
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.
Spelling Quiz Game in Scratch: Step‑by‑Step Coding
Below is a structured approach (scenarios as in the video), including code snippets. You can follow along and later add enhancements.
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. ‒ details below.
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. Scratch Text_to_Speech_Extension
- Blocks like
speak [] :: tts
,set voice to () :: tts
,set language to () :: tts
are part of this extension. - There are many voices (alto, tenor, etc.) and languages supported.
- Blocks like
- Broadcast / When I receive messages: used to coordinate between sprites/backdrops when you want to change images, pick a “new word”, etc. Scratch Broadcast
Scenario 1: Setting Up Backdrop, Sprites, Word Pictures
- Backdrop(s):
- Import your own image for the “classroom” background; also choose another like a “spotlight” or celebratory backdrop for the end.
- Delete unused backdrops.
- 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 & List(s)
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 positioncorrect_index
inword_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 (or some threshold)
if <(score) = [5]> then
say [You are awesome!] for (2) secs
speak [You are awesome!]::tts
end
Enhancements & Advanced Features: Scratch Spelling Quiz Game
Once you’ve completed the basic spelling test game in Scratch, it’s time to make your project stand out with interactive features, advanced logic, accessibility tools, and cool visual effects. Below are several ideas you can implement to take your project to the next level.
1. Add Hint System (First Letter Reveal)
Help players by revealing the first letter of the word if they get it wrong more than once.
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)
Make the feedback more exciting by changing the voice used in Scratch’s Text-to-Speech extension.
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
Add a timer to each question. If the user doesn’t answer in time, it automatically moves to the next one.
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
Reward the player visually and audibly after a correct answer.
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
Let the player know how many words are left.
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
After finishing the quiz, ask if the player wants to play again.
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)
Make the quiz more challenging by shuffling the word list each time.
How to Do It:
Scratch doesn’t support native shuffling, but you can mimic it using a custom method by removing random items and appending them to a new list.
Here’s a simplified method:
- Create two lists:
word list
andshuffled list
. - At the start, transfer words randomly from
word list
toshuffled 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)
Track the highest score of the session and show it at the end.
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)
For tablet or touchscreen users, create an on-screen keyboard sprite to enter the spelling instead of using the 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
Now, you know how to create a quiz game in Scratch, with advanced features like:
- Hints after wrong attempts
- Randomized word order
- On-screen keyboard for mobile play
- Voice feedback using Scratch’s Text-to-Speech extension
- Custom animations and progress tracking
This project is also a fantastic foundation for other Scratch projects, like math quizzes, language learning games, or picture-based storytelling.
Call to Action
- Don’t forget to check out the full video tutorial: Create a Quiz Game in Scratch | Spelling Test in Scratch | Picture Identification in Scratch
- Like, comment & share the video
- Visit kodexacademy.com
- subscribe to the Kodex Academy YouTube channel for deeper Scratch content.
Happy coding with Kodex Academy! 🚀
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!
- 🌐 Website: https://kodexacademy.com
- 🌐 Website: https://games.kodexacademy.com
- 💬 WhatsApp Channel: Join Now
- 💼 LinkedIn: Kodex Academy
- 📸 Instagram: @kodex_academy
- 𝕏 Twitter: @Kodex_Academy
- 📢 Telegram: Join Our Channel
- 🔗 Patreon: patreon.com/KodexAcademy
Further Reading & Links
- Scratch Wiki Motion Blocks: https://en.scratch-wiki.info/wiki/Motion_Blocks
- Scratch Programming for Beginners: https://scratch.mit.edu/projects/editor
- Scratch Animation Guide: https://en.scratch-wiki.info/wiki/Animating