带球好坏的衡量标准
- 球速度向进攻方向的时间
- 我方在球后鱼的个数
- 球在进攻半场的时间小问题当球贴着球门边上的时候,球不会算进。拆后场后场很复杂,小拆一下
 [x] forbiddendefencestrategy
 [x] strategy45//让4,5号鱼跟着球的z坐标相等
 [x] findbestdribbler //就是简单的鱼球角和球目标点角的差最小的情况
 [x] fishchoose
 [x] fishaction
 [ ] outupstrategy//13
 [ ] outdownstrategy//14
 [ ] interdefence
 [ ] outerdefence
 [ ] updefence
 [ ] downdefence
 [x] qiangduan
 [x] finddangerousfish(intnum1,intnum2)//用于判断对方哪条鱼威胁更大
 [ ] findhitfishpoint
 [x] finddangerousfish(ListOppFishID) 
 [ ] dribblescore//貌似是一个粗略估计带球时间的函数,但是怎么出现的呢?
 [ ] hitotherscore//粗略估计撞鱼所需时间的……
 [x] wheelscore//这个函数没用?想做什么?
 [ ] stopball//用鱼去停球
 [ ] isbehindball//判断是否是鱼在球后以及球在鱼的鱼头、鱼尾中间
 [ ] isupball//鱼是不是在球的上面,相对于整个球来说的
 [ ] isdownball//同上,too
 [ ] dribbleaway
 [ ] wheelatgoal
 [ ] wheelatedge//flag为true是从上往下绕,false从下往上绕
 [ ] judgewulong//球在禁区内的乌龙情况判断
 [ ] selectbestwheel
 [x] countbehindball
 /*
- choose的值
- 1表示将球带离球门
- 2表示撞鱼
- 3表示抢断横鱼
- 4dribble(2100)
- 5同6
- 6球特别靠近球门的情况下,我方要绕到球后
- 7dribble -80度带球
- 8dribble 80度带球
- 9边界从上往下绕
- 10边界从下往上绕
- 11后场边界 顺时针走
- 12后场边界 逆时针走
- 13上边界 顺时针
- 14下边界 逆时针
- 15鱼静止
- */
 后场里面好多函数在前场、中场里也存在,浪费……心得体会总结
- 平台特性
 1) 平台具有不对称性,所以设置参数不一定都相同
 2) 坐标都有随机误差,但是对于所有的鱼以及球误差是相同的,点球时可以根据此来消除误差。
 3) 平台具有随机性,调参时要对一个dll进行多次测试。同一个dll在不同的电脑上表现出来的效果也不同,可以多保存一些版本,比赛时根据场地情况,挑选最优的。
 4) 当调试平台打不开的时候,可以将txt文件最前面不对称的数据删除,然后重新开即可。
 5) 鱼靠墙边走,时间长了会被弹开。
 6) 球顶在球门角上不算进球。
 7) 安装reflector可以反编译dll得到代码,用reflexil插件可以对dll直接进行修改。
 8) 该平台函数从上到下运行,中间的会被覆盖,只考虑最后的结果
- 代码规范
 1) 不要所有东西堆到主函数里面,要各自封装到自己的类里面
 2) 将常用的判断设为函数
 3) 规范函数、变量命名
 4) 尽量少的使用全局变量
 5) 防止自身循环调用的出现,平时写函数的时候不要乱调用
 6) 复制粘贴模板的时候一定要看好,把所有的有用的都用到
 7) 在编写代码的过程中注意及时添加注释,对于代码修改也要注释怎么修改的并署名。
- 函数编写
 1) 具有预测思想,根据此时的速度距离,预测下一拍的速度距离,以对参数进行调整。
 2) 用step来约束某些if语句的执行次数
 3) 带球好坏的衡量标准
 A. 球速度向进攻方向的时间
 B. 我方在球后鱼的个数
 C. 球在进攻半场的时间策略
- 开场等待是否值得?
- 在原后场的基础上增加部分动作即可,不用拆了全部重新写
- 开场防守可否不去撞鱼 换为挡球 效果感觉好一些阶段性总结水球已经告一段落了,暂时不用继续那个扯淡的跑位以及带球了,总结:
- 改代码的时候要注意,不要瞎改,注意要有思考,不要一味去改,那样可能越改越烂,就像把刚体中心换成鱼头坐标后,不仅没变好,反而由于距离接近,导致角度出现很大的问题。
- 注意多加注释之类的,代码要分块,要清晰,不要多层if嵌套,有些常用判断可以弄成函数。
- 有的时候当改正不起作用的时候,不妨清空,重新开始。
- 由于平台不对称,所以参数设置也不一定要对称,调参数要多次观察,不要因为一次的偶然情况而胡乱修改。鱼球碰撞模型所在位置:鱼球碰撞模型所在位置: URWPGSim2D.Core.CollisionResponse
| 
 | 
 | 
调试
调试的时候 会出现好多千奇百怪的情况,由于随意拖球,有些在比赛中基本不会发生的情况也会出现,所以不要根据那些情况进行策略变化
点球问题,
点球问题,目测分三段,每段大概都是10s。
最原始的点球数据记录
820—9s
1200—–15s
550—–6s
82050515149
120038363535
55030303030
把带球位置改成无限远
82049495051
120034353336
55029292831
感觉看起来鱼尾巴摆的也很厉害,但是貌似速度也都差不多,难道这个鱼游动 的速度,和调角的影响。
然后那个到禁区范围内的时间差不多5s正常,不会再快了。
那个一个小想法:把带球前往的位置 挪到无穷远处……
新平台的更改
- 制胜球阶段时间加长为5min(所以那个点球紧急程度可以减一下)
- 具体鱼体、场地数据没有对比
- 平台略扯 进入点球之后 如果能在一分半之内点进去 那么就是一直点
如果超过一分半 球没有点入就会进入 正常比赛模式 然后过了这一分半 就结束比赛
呼呼呼山(http://code4fun.me)
2019-05-01 09:26:21