开发手稿
[TOC]
执行计划
- 完成数据结构的设计
- 游戏设计
- 根据功能书写函数
编写主函数
- 收到包之后开启多线程
- 多线程编程
3 在多线程响应
多线程编程内容
- 将收到的包,解析为字节数组
- 将字节数组,转为请求实体
- 调用响应函数处理实体,获取字节数组
- 将自己数组打包为Package,响应
- 多线程中捕获异常,重新响应
- 并发锁!!
主函数监听消息,并且解析
使用多线程处理收到的消息
封装多线程程序
需要设计在线程中捕获异常并且处理为响应字节串的对象
设计地图
食物信息通过一个食物最大上线控制,超过不生成
食物通过一个2维数组存储
地图上的玩家通过Map存储
MVC结构
把地图和相关的信息当做上下文构造,相关服务和控制器
服务
食物服务
对上下文中食物信息的增加、删除、修改、查询。
玩家服务
对上下文中玩家信息的增加、删除、修改、查询。
解析控制器
决定处理类型
根据请求的字段决定处理函数
初始化
- 创建角色
- 根据玩家ID,对周围区域数据整合
- 序列化响应实体
更新
- 根据ID查找玩家
- 更新玩家信息
- 根据玩家ID,对周围区域数据整合
- 序列化响应实体
死亡
- 解析请求字节为实体
- 从玩家列表中移除玩家
- 把玩家的角色变成食物
- 增加击杀者的分数
- 响应玩家的ID和分数
区域数据整合
- 根据头结点获取周围区域
- 根据区获取区域内的所有玩家信息、
- 根据区域获取周围的所有食物信息
- 把上面的信息整合到一个响应中
测试数据
- 制造Food的数据,序列化测试,16进制输出
- 制造SnakeNode的数据,序列化,16进制输出
- 制作请求的数据
- 制作响应的数据
Comment ( 0 )