Module 6 - The “Guess the NumberLogic Game” Project

Z Wiki Mistrzowie Kodowania
Skocz do: nawigacji, wyszukiwania
Logo Mistrzowie.png

These materials have been developed by OśrodekEdukacjiInformatycznejiZastosowańKomputerów (Centre for Information Technology Education and Application of Computers) in Warsaw as part of the “MistrzowieKodowania” (“Masters of Coding”) Programme funded by Samsung Electronics Polska, licensed under CC-BY-SA “Attribution – Share Alike 3.0 Poland”

Information

Objectives

General objectives:

  • Review and revision of previously presented Scratch commands and language structures;
  • Introduction of a binary search algorithm;
  • Development of a simple logic game;
  • Implementation of the game in the Scratch environment.

Specific objectives:

  • The student will understand and be able to use appropriate structural instructions, including a conditional iteration.
  • The student will understand the concept of variable and will be able to use it in the programme.
  • The student will understand and be able to use messages and programme reactions to a received message.
  • The student will be able to implement a simple logic game in the Scratch environment.
  • The student will be able to use a binary search algorithm.

Stages

Discussion of selected solutions of module V additional tasks

Time to complete this part: about 10 minutes

At the beginning of the lesson we remind students what they were supposed to prepare between classes. We invite a volunteer to present his/her solution. We ask if anyone had a different way of finding a solution. We discuss the solutions (praising correct solutions to individual tasks).

If there was no homework, we start by repeating key issues from the previous module. We also ask if students have any doubts regarding their own projects. If anyone wants to show something he/she is proud of, we let him/her do it.

Designing a game involving guessing a number randomly selected by the computer

Time to complete this part: about 20 minutes

At the beginning of the lesson we present the design concept which we want to develop in class. Together with the students we consider how a game involving guessing a number randomly selected by the computer could work. We considering how the programme should react to correct and incorrect answers. How can a response given by the programme prompt the player to find the correct result? We reach the conclusion that the programme should inform the player whether the number provided is smaller or larger than the randomly selected one. Together with the students we discuss this and write down the proposed algorithm on the board.


Tip1.png

The first algorithm version may look like this:

After the programme has been started:

  • it displays a message telling you how to play, e.g. “I thought of a number between 1 and 100. Guess what number it is!”
  • it draws a number (in the range from 1 to 100) and stores in a variable
  • it displays the words “Give a number” and waits for the player’s answer
  • it compares the player’s answer with the drawn number:
  • if the number does not match
  • it checks if the number given by the player is higher than the randomly selected number
  • if it is
  • it displays the message: “Too high!”
  • otherwise
  • it displays the message “Too low!”
  • once again it prompts the player, waits for an answer and compares it with the drawn number
  • if the number matches
  • it displays “Well done!”
  • it ends the script execution

After the first algorithm version has been written down we point out that we are dealing with certain actions which will be repeated.

We ask the following question: Which actions are repeated? Do we know how many times? Can we formulate a condition that must be met to terminate the repetition?

If necessary, we guide students to realize that from the step “the programme compares the player’s answer” actions are repeated until the answer provided is correct (the provided number matches the number drawn by the programme). We point out it will be appropriate to use a relevant loop.