C2代码学习笔记(34)
四十、像素猎人游戏机
(三)控制“猎人”,捕 获像素点
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
11# 生成猎人的像素点
12 x1 = 1
13 y1=1
14
15 # 随机生成猎人需要捕获的目标像素点
16 x2 = random.randint(1,8)
17 y2 = random.randint(1,8)
18
19 # 使用循环结构与多分支结构的嵌套
20 # 开始控制猎人左、右、上、下移动捕获目标像素点
21 while True:
22 # 获取陀螺仪检测的数据,保存在变量gdic中
23 gdic = gyr.state()
24 # 取出字典中键'angle x'的值
25 # 保存在变量 gx中
26 gx= gdic['angle x']
27 # 如果 gx 的值大于 110 并且 x1的值小于 8
28 # 向右倾斜
29 if gx> 110 and xl < 8:
30 X1 = x1 +1 #像素点向右移动 1格
31 # 否则如果 gx 的值小于 70 并且 x1 的值大于 1
32 # 向左倾斜
33 elif gx<70 and xl> 1:
34 x1 =x1 -1 #像素点向左移动 1格
35 #取出字典中键'angle y'的值
36 # 保存在变量 gy 中
37 gy = gdic['angle y']
38 # 如果 gy 的值大于 110 并且 y1 的值大于 1
39 # 向上倾斜
40 if gy > 110 and yl > 1:
41 y1 = y1 - 1 #像素点向上移动1格
42 # 否则如果 gy 的值小于 70 并且 y1的值小于 8
43 # 向下倾斜
44 elif gy < 70 and yl < 8:
45 y1 = y1 + 1 #像素点向下移动1格
46 # 清空当前显示的点
47 lm.clear()
48 # 绘制猎人移动后的像素点
49 lm.show dot(xl,y1)
50 # 绘制目标像素点
51 lm.show_dot(x2,y2)
52 # 判断是否捕捉到目标像素点
53 # 如果猎人移动的像素点和目标像素点位置一致
54 if xl == x2 and yl == y2:
55 break #退出程序,游戏结束