Beam
控制球员上场的位置 位于策略文件中的beam函数,参数为x,y,angle
Strategy.cc
agent的控制结构
Skill----枚举量
常用的就kickBall 和 gotoTarget 少数情况可能会使用到collisionAvoid避免碰撞
如何获取球场上的信息
worldModel
这是一个球场信息获取类,其中有很多封装好的函数可以用来获取球场的信息
worldObject
画点

角色分配方法
SelectSkill整体思路
- 对方准备踢球时,冲上去
- 如果离球最近的球员摔倒了,队友迅速补位,避免空防
- 如果球员角色是离球最近的球员(ON_BALL)
- 我方开球,简单策略,向后执行大脚踢
- 对方开球,我方不动
- 距离球的距离小于一???
- 如果是我方开球,
- 最前面的球员与我的距离大于五个单位,那我就朝球门踢球??
- 最前面的球员与我的距离没有那么大的距离,我就朝射球点函数获取的点位踢球。
- 球员号码在3~7的球员
- 如果我的位置比较靠近球门或者对方没有离球较近的球员,那就朝球门踢球
- 如果我在对方离球最近的球员的左下方,就朝躲避对方球员的方向带球
- 其他情况都朝躲避对方球员的方向带球
- 如果球里球门很近
- 如果对方离球最近的球员的距离小于0.5个单位,继续向球门带球==//这个方向还要改
- 其他情况,视为前方无对方球员,进行快踢操作
- 或者对方球员离球很近的时候
- 我在对方球员的下方,并且距离很近,避障方向带球
- 其他情况,则朝着对方球门避障的方向带球
- 如果对方离球最近的球员与球的距离适中的话
- 如果我的横坐标大于一,执行快踢动作
- 如果最前面的球员不为空,则快踢把球踢给队友
- 如果没找到最前面的队友,则向最近的球员传球
- 其他情况,就靠传球点生成函数生成射球点,并且使用快踢踢到目标点
- 如果离球最近的对方球员距离球稍远,并且球在我方场地,并且最前方的球员离我也比较远,那么使用大脚踢传给最前方的球员
- 其他情况朝着球门?使用大脚踢。//代码写的是利用落点生成函数进行生成落点。
- 如果是我方开球,
- 如果是对方开球,向着各自的目标点走
- 遍历球员角色agentRole
- 如果第二个对象是ON_BALL
- 令flag=-1
- onball_num=第一个对象的号码
- 退出循环
- 如果第二个对象是ON_BALL
- 如果获取到的flag的非运算为真,也就是flag为假,即:角色遍历中的第二个角色不为ON_BALL
- 令onball_num = 距离球最近的我方球员的编号
- 如果角色不为ON_BALL
- 如果游戏模式为正常踢球,并且对方距离球最近的球员距离球比较近,并且我距离球的距离也比较近,我在球的左边,就走向球
- 定义ON_flag=队友是否在离球最近的对方球员的右边,并且队友也在球的右边?1:0
- 一堆条件判断,最后都返回走向球的动作
- 返回走向阵型指定的点位