C2代码学习笔记(35)
四十、像素猎人游戏机
(三)控制“猎人”,捕 获像素点后播放“正确”音乐
1 import ybc_robot #导入ybc_robot 模块
2 import ybc_tools #导入ybc_tools 模块
3 import random #导入random模块
4
5
6 # 创建 LED 点阵对象 lm
7 lm=ybc_robot.LEDMatrix()
8 #创建陀螺仪对象 gyr
9 gyr= ybc_robot.Gyro()
10 #创建音乐模块对象 mus,接口选择 P1
11 mus = ybc_robot.Music('P1')
12
13 #生成猎人的像素点
14 x1=1
15 y1 =1
16
17 #随机生成猎人需要捕获的目标像素点
18x2=random.randint(1,8)
19y2=random.randint(1,8)
20
21 #使用循环结构与多分支结构的嵌套
22 #开始控制猎人左、右、上、下移动捕获目标像素点
23 while True:
24 # 获取陀螺仪检测的数据,保存在变量
25 gdic 中gdic = gyr.state()
26 #取出字典中键'angle_x'的值
27 # 保存在变量 gx 中
28 gx = gdic['angle x']
29 # 如果 gx 的值大于 110 并且 x1 的值小于 8
30 # 向右倾斜
31 if gx>110 and xl < 8:
32 x1 = x1 +1 #像素点向右移动 1格
33 # 否则如果 gx 的值小于 70 并且 x1 的值大于 1
34 # 向左倾斜
35 elif gx < 70 and xl > 1:
36 x1 = x1 - 1 #像素点向左移动1格
37 # 取出字典中键'angle y'的值
38 # 保存在变量 gy 中
39 gy = gdic['angle y']
40 # 如果 gy 的值大于 110 并且 y1 的值大于 1
41 # 向上倾斜
42 if gy > 1l0 and yl > 1:
43 y1 = y1 - 1 #像素点向上移动1格
44 # 否则如果 gy 的值小于 70 并且 y1 的值小于 8
45 # 向下倾斜
46 elif gy < 70 and yl < 8:
47 y1 = y1 + 1 #像素点向下移动1格
48 # 清空当前显示的点
49 lm.clear()
50 # 绘制猎人移动后的像素点
51 lm.show dot(xl, y1)
52 # 绘制目标像素点
53 lm.show dot(x2,y2)
54 # 判断是否捕捉到目标像素点
55 # 如果猎人移动的像素点和目标像素点位置一致
56 if x1 == x2 and yl == y2:
57 # 播放“正确"音乐
58 mus.play music('正确')
59 break #退出程序,游戏结束