一、需求分析
游戏策略子系统
- 输入:冰球的当前位置和速度。
- 输出:目标击球位置,到达该位置的时间,以及在该位置击球器的速度矢量。
- 主要参数:游戏桌几何尺寸(长、宽和底边上的门洞宽度),冰球和击球器的几何尺寸,仿真物理过程所需要的动力学参数。
- 功能:根据冰球当前位置和速度,确定击球点,计算出击球器的控制指令
二、设计注意事项
经过小组的讨论,我们认为有如下几点是需要注意的:
- 在确定击球器的速度时,需要考虑实际机械臂运动速度的限制
- 在某些情况下,进行防守可能会更容易实现(即需要更加复杂的轨迹规划才能将球打进球门)
- 为了简化算法,我们决定让击球器在球的速度方向是朝向自己球门的时候再进行回击
三、遇到的困难
大家对这样的团队协作项目都是第一次接触,而且编程能力也参差不齐,因此在协作初期一定会遇到各种麻烦,希望这些能在磨合中一步步去解决。
四、团队分工
1. 算法设计阶段
- 黄竞超:确定球以当前速度会不会进入我方球门以及是否需要防守的算法设计。输入是当前的球位置,速度;约束是球台壁的范围;输出是对是否防守的布尔判断,球的碰撞方式的标识符(比如,球会碰撞到那些面等等,以便于后续的确定防守策略)。
- 李开旭:确定击球手从当前位置到击球点的运动的轨迹规划,即确定一个算法或者公式能够表达出击球手的轨迹。输入是击球手的当前位置速度,击球点的位置,击球手在击球点的速度;约束是当前到碰撞的时间差t;输出是击球手的轨迹表达式。
- 杨静梧、曹迦勒:确定需要防守的时候的计算击球点位置的算法的设计。输入是球当前位置速度,球碰撞类型;输出是击球点位置,击球点处击球手的速度,当前到击球点的时间间隔。
2. 程序设计以及测试设计阶段
根据大家算法的分工,以及确定好的接口来编写程序。