Skip main navigation

Creating a Story

Watch this video to learn how to use variables to create a personalised story.
1.6
In this video, I’ll show you how to create the personalised story that is generated using data that’s been inputted by the user. I’m going to ask the use of two pieces of information for my story. I’m going to ask them to provide their name and also, their favourite food. So the first thing I’m going to do is I’m going to create two variables to store these pieces of information.
28.7
So I’m going to create a variable that’s called name.
34.4
And I’m going to create another variable that’s called food.
41.2
Now, we’re going to get the information from the user through the Ask block and that’s in the Sensing section, here.
52.2
So let’s drag and drop this in. And if I click to test it, you can see that the dinosaur sprite asks the question– it says, what is your name? And a text box appears at the bottom for me to type my answer in. So I’m just going to type Bob, to test this out. And then you can press Return or click this tick box here. Now what’s happened is that the answer to this question has been stored in a variable over here, called answer, which is a built-in variable in Scratch. And if I click the tick to show the contents of this variable, you can see that the answer here has been sent to Bob– which is what I entered.
97.8
And if I want to store the data in this variable somewhere else, all I need to do now is to set my name variable to be the answer that was provided. So I’m going to use a set block for this. And I’m going to say that I want the name variable to be set to the value of the answer. And I can drag and drop that variable, and it fits nicely into that space there.
134.3
So now, I’ll test it with a different name. I’m going to use Kim this time. And you can see that what’s happened is that the answer variable is holding that data that I’ve entered. And so is the name variable that I’ve programmed, too. Now I’m going to do the same with the next question. So I’m going to duplicate this code.
165.9
And then the next question I’m going to want to find out is the user’s favourite food. So I’ll alter this text here.
178.2
And this time, I want the food variable to be set to the user’s answer.
185.9
And I’m going to do all of this where the green flag is clicked. So let’s test it out. And you can see that, first of all, I’m asked for my name. So I’m going to type my real name in this time. And then it asks me for my favourite food. So I’m going to use my real favourite food– cheese. And now you can see that the name variable is holding my name and the food variable is holding my favourite food.
218.6
So I now have all the data that I need for my story and the next thing is to write the story itself. And to do that, I’m going to use a say block. And the first thing I want to say is here is your story.
235.1
And then, for the first line of my story. I want to say there once lived a creature called and then add a name, which is the name that the user has entered. So there’s two parts to this sentence. First, it’s a phrase that once lived a creature called. And secondly, there’s the creature’s name. So to do this, I’m going to use a join block.
259
And what I want to say is the initial phrase and then I want to join this onto the name that the user has entered. So I’m going to use that variable as the second part of the sentence.
280.1
Now if I click these blocks to test them out, you’ll see that we get the story. And we get the first line. Except you can see that there was no space between the word called and my name. So I’m just going to detach this and just test it out, again. So I can change that by adding a space after the word called. And now if I clicked this block to test it, again, you’ll see that the sentence does have all the spacing in correctly now so I’ll pop it back into the same block. Now, let’s test it once more– that looks a lot better.
329
And then, for the next line of my story, I want to tell the user what the character’s favourite food is. So again, I’m going to use a say block. And this time, I’m going to join another two phrases.
350.1
And the first part of this phrase is going to be who loved.
358.5
And then, I’m going to click on the Variables as select Food.
365.7
And put it in the second part of the join block. So that will tell the user what the character’s favourite food is. Let’s have a look.
379.8
And you can see that, again, I forgot to put a space in the join block after the word loved. So I’ll add that in and I’ll test it, again.
395.2
That looks great. So now, I’m going to join the two sections of the script together. And I am going to test everything all at once now. So this time, I’m going to type the name as if.
413.1
And the favourite food is going to be bananas. And you can see that this time, we get a slightly different story. Now, these variables at the top here on the stage are really handy to see when you’re testing the project, but we don’t need to see them in the finished project. So I’m going to hide these by unticking the boxes. And I’m also going to hide the answer variable, too. So there we have it– a very short, but interesting story.

In this video you’ll learn how to create the personalised story seen in the previous example, by using variables to store data input by the user.

This article is from the free online

Teaching Programming in Primary Schools

Created by
FutureLearn - Learning For Life

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education