
C H A P T E R 1 2
A N I N T R O D U C T I O N T O P Y T H O N
189
if changeDirection == ‘left’ and not direction == ‘right’:
direction = changeDirection
if changeDirection == ‘up’ and not direction == ‘down’:
direction = changeDirection
if changeDirection == ‘down’ and not direction == ‘up’:
direction = changeDirection
With the user’s input checked to make sure it makes sense, the snake—which appears on the
screen as a series of blocks—can be moved. During each turn, the snake moves a distance equal
to the size of one of its blocky segments. With each segment measuring 20 pixels, you can tell
pygame to move the snake a single segment in any direction. Type in the following code:
if direction == ‘right’:
snakePosition[0] += 20
if direction == ‘left’:
snakePosition[0] -= 20
if direction == ‘up’:
snakePosition[1] -= 20
if direction == ‘down’:
snakePosition[1] += 20
The
+=
and
-=
operators are used to change the value of a variable by a certain amount:
+=
sets
the variable to its previous value plus the new value, while
-=
sets the variable to its previous
value minus the new value. By way of example,
snakePosition[0] += 20
is a shorthand way
of writing
snakePosition[0] = snakePosition[0] + 20
. The number in square brackets
following the
snakePosition
variable name is the position in the list being affected: the first
value in the
snakePosition
list stores the snake’s position along the X axis, while the second
value stores the position along the Y axis. Python begins counting at zero, so the X axis is con-
trolled with
snakePosition[0]
and the Y axis with
snakePosition[1]
. If the list were lon-
ger, additional entries could be affected by increasing the number:
[2]
,
[3]
and so on.
Although the
snakePosition
list is always two values long, another list created at the start
of the program is not:
snakeSegments
. This list stores the location of the snake’s body,
behind the head. As the snake eats raspberries and grows longer, this list increases in size
and provides the difficulty in the game: as the player progresses, it becomes harder to avoid
hitting the body of the snake with the head. If the head hits the body, the snake dies and the
game is over. Type the following line to make the snake’s body grow:
snakeSegments.insert(0,list(snakePosition))
Содержание A
Страница 1: ......
Страница 2: ......
Страница 3: ...Raspberry Pi User Guide 2nd Edition...
Страница 4: ......
Страница 5: ...Raspberry Pi User Guide 2nd Edition Eben Upton and Gareth Halfacree...
Страница 10: ......
Страница 26: ...R A S P B E R R Y P I U S E R G U I D E S E C O N D E D I T I O N 10...
Страница 28: ......
Страница 29: ...Chapter 1 Meet the Raspberry Pi...
Страница 37: ...Chapter 2 Getting Started with the Raspberry Pi...
Страница 56: ......
Страница 57: ...Chapter 3 Linux System Administration...
Страница 79: ...Chapter 4 Troubleshooting...
Страница 89: ...Chapter 5 Network Configuration...
Страница 109: ...Chapter 6 The Raspberry Pi Software Configuration Tool...
Страница 122: ......
Страница 123: ...Chapter 7 Advanced Raspberry Pi Configuration...
Страница 140: ......
Страница 141: ...Chapter 8 The Pi as a Home Theatre PC...
Страница 151: ...Chapter 9 The Pi as a Productivity Machine...
Страница 159: ...C H A P T E R 9 T H E P I A S A P R O D U C T I V I T Y M A C H I N E 143 Figure 9 4 Exporting a file from The Gimp...
Страница 160: ......
Страница 161: ...Chapter 10 The Pi as a Web Server...
Страница 171: ...Part III Programming with the Raspberry Pi Chapter 11 An Introduction to Scratch Chapter 12 An Introduction to Python...
Страница 172: ......
Страница 173: ...Chapter 11 An Introduction to Scratch...
Страница 189: ...Chapter 12 An Introduction to Python...
Страница 216: ......
Страница 218: ......
Страница 219: ...Chapter 13 Learning to Hack Hardware...
Страница 234: ......
Страница 235: ...Chapter 14 The GPIO Port...
Страница 249: ...Chapter 15 The Raspberry Pi Camera Module...
Страница 265: ...Chapter 16 Add on Boards...
Страница 279: ...Part V Appendixes Appendix A Python Recipes Appendix B Camera Module Quick Reference Appendix C HDMI Display Modes...
Страница 280: ......
Страница 281: ...Appendix A Python Recipes...
Страница 287: ...Appendix B Raspberry Pi Camera Module Quick Reference...
Страница 293: ...Appendix C HDMI Display Modes...