2. 实现原理¶
2.1. 游戏设计¶
2.2. 网络连接¶
- 基本原理
- 两个玩家使用两个不同的Skids开发板,它们通过ZigBee网络进行连接。
- 其中一个Skids上的ZigBee为终端(玩家1),另一个Skids上的ZigBee为协调器(玩家2),终端ZigBee通过连接ZigBee协调器使而这两个Skids间建立连接。
- 玩家1流程
- 程序启动,进行硬件初始化,对显示屏和按键进行设置
- 建立连接,发送邀请消息以寻找玩家2,等待对方回应
- 成功连接到玩家2后,选择按键以出拳,并发送出拳信息给对方
- 等待对方出拳
- 接收到对方出拳信息后,判定胜负并显示结果
- 开始下一轮猜拳游戏
- 玩家2流程
- 程序启动,进行硬件初始化,对显示屏和按键进行设置
- 等待连接邀请,如果收到玩家1的邀请,则建立连接并给对方一个回应
- 等待对方出拳
- 接收到对方出拳信息后,选择按键以出拳,并发送出拳信息给对方
- 判定胜负并显示结果
- 开始下一轮猜拳游戏
2.3. 数据格式¶
- AT指令
两个Skids建立网络连接后,通过互发AT指令实现通信,AT指令的格式请见: AT指令
- 交互数据
猜拳游戏中用于交互的数据就封装在AT指令的数据字段,共12字节,其格式如下:
- [type]+[playerId]+[computerId]+[choice]
- type:1字节,数据类型,0代表是邀请或邀请响应数据,1代表是出拳信息数据
- playerId:5字节,自己的ID号
- computerId:5字节,对方的ID号
- choice:1字节,type为0时choice为0;type为1时,choice代表出拳的选择:1剪刀2石头3布
例如:
邀请或邀请响应数据:
16进制: 00 53 4B 30 30 31 53 4B 30 30 32 00
bytes: \x00 SK001 SK002 \x00
出拳信息数据:
16进制: 01 53 4B 30 30 31 53 4B 30 30 32 02
bytes: \x01 SK001 SK002 \x02

