The attributes we use to describe Scratch the Cat’s location and orientation are called variables.
Wait a minute! We’ve seen that word before in countless contexts! Let’s recall two forms of variables:
Variables in Algebra I
Remember Algebra I and its most famous denizen, x? That li’l guy is everywhere from
Its primary purpose is to act as a placeholder for a value that was unknown. The point of most Algebra I problems is to figure out just exactly what x is a placeholder for—a kind of a mathematical hide-and-seek game.
Variables in a Science Fair Project
The Science Fair always ends with a cafeteria full of tri-fold cardboard displays, but a good science fair project always begins with a hypothesis and an experiment to test it. This picture is the beginning of such an experiment; plants were given distilled water, tap water, brackish water, and salt water for daily waterings. The hypothesis might be that the purer the water, the better the growth. The experiment is designed to test that conjecture.
This is done by establishing controls and variables. If you want to make sure that any difference you see in plant growth is due to the type of water you give them, you have to make sure that they receive equal treatment in every other possible way—the same amount of sunlight, the same type of soil, etc. These constant factors are controls, whereas the water is the variable.
In this sense, a variable is a quantity (or quality) that changes. In other words, what it represents in one scenario may be completely different in another.
Variables in computer programs are similar to both of the types of variables previously discussed—they are both placeholders and changeable quantities. Let’s look at examples for each characteristic:
Scratch the Cat is minding his business when suddenly a voice from above tells him
turn ←  degrees! We know from examining his attributes that means subtract 15 degrees from his
direction. Or, perhaps the voice tells him
move  steps. This one is more complicated because it involves modifying both
y positionand it depends on which
direction he is facing. However, to some degree, it doesn’t matter, because the variables are an abstraction. Essentially,
turn ←  degrees means subtract 15 degrees from
direction—whatever it is. The variable
direction acts as a placeholder.
direction in the example above. As you rotate Scratch the Cat, the
direction variable changes. Note how this is different than variables in algebra equations. In 2x + 3 = 15, x is always 6. There is one correct answer for “what is x?” However, unlike algebra equations, computer programs are dynamic things; they change over time. Scratch the Cat moves, turns, and meows. All of this possible because we are able to change the variables that define him.
Try It Out!
Load the Scratch program from User input and interaction (and Show Me Your State), and edit it as described below.
Check the box next to
direction in the Motion tab. Now, an indicator will appear on the screen with the label
direction and a value. Continually click the
turn ←  degrees block and track how the
direction changes. In the information pane for the sprite, you can freely rotate it. Notice how
direction is updated. Clicking on
turn ←  degrees once more will still work as intended, because it merely subtracts 15 degrees from
direction—whatever it happens to be.