The completed Tenzi Dice game in Scratch.

Tenzi Dice Game Learning Random Numbers

Grade 7 - Grade 8

Section Navigation
Michelle Jilesen

Michelle Jilesen

About the author

Michelle is an Educator with a Bachelor of Science and a Bachelor of Education from UOIT. Michelle has lead coding workshops with students in JK – Secondary school. She enjoys camping and being outdoors. One of her passions is to inspire girls to take an interest in math, science and technology.

Computer Fundamentals, Game Design
Lesson Plan

Introduction

In this module students will learn about random numbers and how they are used in game design. Students will build a game in Scratch using the ‘random operator.’ After this module students will have the skills to create probability experiments. This module aligns with the data management and probability unit of the mathematics curriculum.

Learning Goals

By the end of this module the learner will understand how random numbers are used in probability and game design.

Vocabulary

Probability
The likelihood of an event occurring
Frequency
The rate at which something occurs over a period of time
Outcome
The possible result of an experiment

Guiding Questions

  1. When you roll a dice what is the probability of getting a one? is it the same as getting a six? Why doesn’t the probability change with the different outcomes?
  2. How is randomness used in game design? Why do we use it?

Curriculum Links

This module provides opportunities to tie in mathematics expectations from data management and probability units in Grade 4 through 6. After completing this module students will have the skills to create their own virtual probability experiments. The conclusion activity also provides an opportunity to address the Language Arts curriculum through the creation of a random story.

Materials

Non-Computer Activity

Dice Game

Divide students into groups of six to eight. Each group sits in a circle with a dice. Everyone gets a turn to roll, and if they roll a one they are eliminated. Go around until there is a winner. Ask the students if they think it took skill or talent to win the game. Use this to shift into a discussion about randomness and that there is no skill to rolling dice. How the dice land is random.

Computer Activity

For this module students will be creating a two-player dice game called Tenzi in Scratch. Each player has 10 dice and is trying to get 10-of-a-kind before their opponent. Players set aside dice they want to keep, and continue rolling the rest until all 10 dice match.

Give an example:

The completed Tenzi Dice game in Scratch.
The Tenzi Dice game being played in Scratch.

Activity

  • Start a new project and delete the cat.
  • Add a button sprite that will be used to roll the dice. Add text to your button to make it clear which button is for which player. Words can be added by going to costumes and editing the look of the button.
  • We want the button to broadcast a message when clicked that tells the dice to roll.
Scratch code blocks that broadcasts a message when the sprite is clicked.
  • Create a rolling button that is a different colour for player 2 and program it the same way as above but with the message “Roll P2”. Add text to this button that makes it clear it is for player 2.
  • To begin programming our dice, start by uploading a dice sprite. Set all of the possible outcomes (1 to 6) as costumes. Program the dice to roll as below: The repeat loop for “next costume” gives the illusion that the dice is rolling, then randomly picks a side to display.
Scratch code blocks that gives the illusion the dice is rolling and selects a random costume to display.
  • Create a background by clicking the paintbrush on the left of the screen under “new backdrop”. Select a colour other than white, to make it easier to see the dice. You can add text for “Player 1 Holding” and “Player 2 Holding” to show where each player will be placing the dice they want to keep. This will be finished in the next step.
Player 1 and Player 2 Holding background.
  • Create a sprite that is a coloured box, by clicking the paint brush beside “new sprite”. This will be used as the place to hold the dice players want to keep.To keep it clear which area is for which player, make the box colour match the rolling button for each player.
Scratch costume editor interface.
  • This is a two-player game where players roll one at a time. To do this we hide one roll button at a time. Pick a location for your roll button, and set it to show when the flag button is clicked. We want the Player 1 roll button to show and the Player 2 roll button to hide when the flag is clicked.
Scratch code blocks that shows and hides the roll buttons. The position of the button is set to a specific location when the green flag is clicked.
  • This is for the Player 1 roll button: When player one clicks the roll button, the message “Roll P1” is broadcast. When the player 1 roll button receives this message it will hide, and the roll button for player 2 will show. When player 2 clicks the roll button, “Roll P2” is broadcast and the player 1 button will then show. Program the opposite of this for the player 2 roll button.
Scratch code blocks that show and hide the Player 1 roll button.
  • To prevent the dice from being rolled while they are in the holding area, we will add an if statement to check if the dice is touching the background colour.
Scratch code blocks that prevents the dice from being rolled while they are in the holding area.
  • If it is, then it will roll, if not, it won’t, allowing the dice to stay the same while in the holding area.
  • In this example, the dice are set in a tidy formation around the roll buttons (see below). Before duplicating the dice we want to set their starting location. Then program the dice to go to the holding area and back when clicked.. We will program the dice locations as follows. 
Preview of the project, where the dice are set around the roll buttons.
An image showing Scratch code blocks that shows the dice when the flag is clicked, sets the start location and chooses a random face value. If the dice is touching our background colour when it is clicked, it will go to the holding area. If our sprite is clicked while in the holding area, it will move back to the starting location.
  • This shows the dice when the flag is clicked, sets the start location and chooses a random face value. If the dice is touching our background colour when it is clicked, it will go to the holding area. If our sprite is clicked while in the holding area, it will move back to the starting location.
  • To announce which player has won, we will change backgrounds. For this example the backgrounds are simple, but feel free to be creative, just ensuring that the dice of the winning player remain visible. 
Player 1 winner backdrop being edited.
Player 2 winner backdrop being edited.
  • Switching backdrops will happen at the end, after we have duplicated all the dice.
  • Now we will program the dice, buttons, and holding areas to hide when the background changes. If player 2 wins we want all of player 1’s items to hide and visa versa.
Scratch code blocks that hide the sprite if Player 2 wins (by targeting the backdrop).
  • Above is the program to hide player 1’s items. Repeat the program for hiding player 2’s items, changing the backdrop name to “P1 win”.
  • Now we are ready to duplicate and make adjustments to our locations. To duplicate our dice, right click on the sprite and select “duplicate”. Do this until you have 10 dice.
A sprite being duplicated in Scratch.
  • Go through the scripts for all the duplicated dice and change the locations for all of the “go to” blocks. The simplest way to get the x and y coordinates is to place the dice where you want them, then drag in the new “go to” block as it defaults to the current coordinates of the sprite.
A go to x code block being added to the project code.
  • Now we will make the dice for player 2. Begin by duplicating one of the dice from player 1, then go to costumes and change the colour for all sides of the dice.
  • Now change the program so that it applies to player 2 when we duplicate:
Some of the values being changed to be applicable to Player 2 rather than Player 1.
  • Change the “when I receive” button to “Roll P2”, “P1 win” when the background switches, and the“go to button” to the location of the player 2 dice.
  • Then duplicate the player 2 dice until there are 10. Adjust the location of the dice as in step 14.
  • To program the backdrop to switch we need to program the holding area sprites. We want the background to switch when all ten dice are in the holding area. To program this we need to set our starting location and “show”. Then add an if loop with and operators within and operators. 
Scratch code blocks setting the starting location and show, and also adding an if loop with and operators within and operators.
  • Above we have our and operators with the “touching” block for every dice. This will become quite large, but we want the program to check that it is touching all 10 dice before switching to the P1 background. Duplicate this and change the sprites the program is checking for before switching the background if player 2 wins.
  • Lastly we want to program our background to start on the starting backdrop. To do this we will program the following for any sprite.
Scratch code blocks that switch the backdrop when the green flag is clicked.

Additional Challenges

Add an animation to celebrate when a player wins

  • To celebrate the win, choose a sprite from Scratch with multiple costumes. For this example “D-Money Hip Hop” was used as he has lots of costumes that make for an exciting animation. Add the following script to your celebrating sprite:
Scratch code blocks add an animation to celebrate when the player wins.
  • This hides D-Money on the opening backdrop, and only shows and animates him when on either win background.

Add a screen with instructions

  • An introduction screen can be added to your program to explain the instructions of the game. To do this click the paint brush under the backdrop section then add some text. You will hide some of the sprites on this backdrop and program it as your starting screen. Include a way to exit the instructions and start the game by adding something for the player to click, or adding a wait block.

Make a variable to track the number of rolls a player takes

  • Make 2 variables: “Player 1 Rolls” and “Player 2 Rolls”, programmed for each player’s roll button.
A variable being added to track the number of rolls a player takes.
  • Set the roll count to 0 when the flag is clicked and increase it by one every time the roll button is clicked.

Additional math activities

  • To practice some of the steps involved in conducting probability experiments students could guess how many rolls it will take them to get 10-of-a-kind, then see how their prediction compares with their actual results.
  • Students can record the number of rolls it takes to win, and then graph their data.

Extension activities

  • Now that students understand the random function in Scratch, they can create other random projects, such as a random answer generator or a virtual ‘Magic 8 Ball’.

Conclusion

Finish the module by creating a random story as a group. This Scratch project can be used to help generate a place, situation, sidekick, genre and character traits.

This activity can also be done off-screen with real dice. Assign six students the numbers one through six. Have them write down words for each category: place, situation, sidekick, character traits, and other elements you want for your story. Working through each category, roll the dice to randomly select a person, and that person reads out their contribution for the category.Keep going until all the categories have been filled. Ideally each student will have an opportunity to contribute to the story. You can keep adding elements to the story until all students have had a chance to participate. This will be a fun activity that can generate a random and interesting story.

Lead a discussion about randomness in games and how randomness allows players to have a unique experience. If a game was predictable or not random, it would likely be rather boring. Adding randomness makes a game different each time it is played, and adds a level of difficulty.

Resources

  • This is a Scratch version of the dice game Pig. Students can play the game and look at the code and be inspired for their own game.
  • In this blog post, random numbers in game design is discussed.
  • Teachers Pay Teachers has some great free resources for teaching probability. This one is a favourite of mine and students enjoy having M&M’s!
  • The Education.com website has a few probability activities for children to try. This will further students’ understanding of probability and how it can tie into random numbers and game design.
  • This Aboriginal Education website has links to a variety of resources that involve mathematics and includes an Indigenous perspective.

You might also like