底层最开始有很多比较简单的改进的地方

首先防守策略bhv_basic_move.cpp中,铲球的可以尽可能的铲 ,但是前提是不存在队友可踢,否则就是铲自己人的铁憨憨if(!wm.existKickableTeammate()),角度用60比较合适Bhv_BasicTackle(0.1,60.0)

之后通过观察比赛,我们发现一个逻辑漏洞就是,如果我与球小于3m 或者 我是全队最接近球并且比对方最近的队员接近球的距离3米以内,我就去追球,这是不合理的,会让对方长驱直入。

可以将3改为10,如果希望有夹击的效果,不妨加个条件

||(wm.self().pos().absX()>20&&self_min<mate_min+10&&self_min<opp_min+10)

但是我们发现,会有我方球员在没有对方球员靠近的情况下去抢球,所以在函数体内加一个条件

if(!(self_min>mate_min && mate_min<opp_min -3 ))

人海战术防守:

持球策略sample_field_evaluator.cpp中,这里有点强化学习的感觉了,对场地不同点进行打分,首先它对进入对方球门打了较高的分数,自己方的球门则是低分,出界也是低分。

但是之后使用40 - (对方球门到球的距离)打分,这样球员只会向前不会后退。想使它会回传也可以,但是要考虑到我们不希望它在自己半场倒脚,也不希望它没事的时候回传,希望他在转身护球的时候回传,但是我们又希望他不要在没有敌方靠近时回传,所以可以加入以下代码

if(state.self().pos().x>0&&state.self().face().cos()<0&&state.ball().pos().x<state.self().pos().x-5){undefined

state.getOpponentNearestTo(state.self().pos(),10,&nearnest_self_dist);

if (nearnest_self_dist<8)

return +1.0e+6;}

进去三角进攻方法较为有效