经过不到一个月的仿真机器人足球的平台开发.本人才疏学浅,略总结了一些开发过程中的小小经验.希望大家一起学习一起讨论.
1 防守:
A 开场后由对方进攻,我方队员都在对方前面。这时是比较省力的防守:
a 防守的位置是对方球员与我方球门中点的连线,然后按一定的比例得到一个防守点,当然这个点是在对方球员与我方门中点的之间,这个方案的防守好处是对方得到球以后不能马上进行射门。不利之处是不能防守对方在我方进区传球,这样我方断球的机会会比较少。
b 另一个防守的位置可以是球与其它进攻跑的对手连线,按一定比例取点当然同上这个防守点是在球与人之间。此方案的好处是防止对方传球而我方断球机会也多,但是要在每个周期跑向这个点地比对方晚一个周容易漏人,而对方拿到球之后也会很快进入进攻状态,射门。
B 当我方进攻时,被对方断球后,对方进入了反攻,而此时我方人大部在对方半场很难一下回防。这时我们应找出最合适防守的对象。还有就是如何一个人去防守对方多个人的进攻,因为可能我们有一个人还是来的及回防的。这时就要考虑用门员一起配合来完成防守了。
在防守过程中,不管是A中的哪种方案,当我们离对方人比较近的时候去让它上去抢球,这样对方会得出下一个周期我们同时控球,使对方做出传球的命令。因为在无噪平台中,传球过程一个比较容易丢球的过程。这里不仅有平台的噪声,还有计算的不周等诸多因素。即使对方不传,当两个球员的位置坐标重合的时候,平台会模拟碰撞使两个分开从而球也会掷于二者之间,这也会使我们有机会得球。关于人盯人防守的过程,我们做出一个合理的计算,比较我方每个队员的时间分配,使它在最短时间的方式下用最快的周期去防守对方。这里可以用群举法算出每个队员应该防守哪个进攻对手。
还有就是关于守门员的扑球,它只是在身体朝向的正前方,所以在我们球队会看到守门员总是侧着身在防守,这样在射门中守门员能扑球的机会就会多一些。但是对于它的防守就很不利了,因为向身体朝向的相反方向跑的时候速度会有点慢。还有就是守门员的站位,当对方只有一个进攻的时候,我们不妨把守门员防守的角度扩大些(即离进攻球员的进一点,使其与我方球门的防守空白减少),使对方减少射门机会。当对方多人进攻的时候,守门员的站位应该重新定位,在不同人数的进攻过程我想也要有不同的防守方案,才能做出最合理的防守。这里包括多防一,一防多(一人站在门员附近配合门员进行防守)等等。
2 进攻跑位
A 跑位的好坏会直接影响到进攻的快慢。好的跑位能很快突破到对方的后防去,在做这次比赛的过程中,知道了在跑位的编写过程中不能单纯的考虑跑位点是哪些,我们还得计算出当我们的球员跑到那个点的时候有没有对方的人在防守,跑过去后已方队员的体力,身体朝向,而且对方的站位会不会影响我们传球。如果考虑到这些情况我们在确定了大概的跑位点后在不断的修正这些点使我们跑位更具有进攻力,我上面所指的快攻是指队员位置比较有力于进攻,使我们传球有利于射门。
B 跑位我们可以分为多套跑位方案,在不同的控球区域内分为不同的进攻跑位点。记得一个学长曾经写过要把一个球场分为五个区,在每个区又不同的跑位方案,但是这样的跑位很乱而且还比较费体力。所以我还是比较倾向我上面所说的跑位,就是先定大概的点然后再不断的找出比较合适的点,因为对方比你慢一个周期做出反映所以我们有足够的时候摆脱对方。但是要把一些可能出界的点考虑到,当我方的队员跑向一个界外的点要有合理的解决方案。
C 当门员拿到球以后我们得分配一到两个人回去接应球,还有一个是在带球队员周围最好有一个跑位灵活的人接应球。这样会使球队更灵活,进攻的机会也会大大增加。由其是当我方进入了对方的禁区以后,能安全的把球倒开是判断一个球队好坏的关键。
3 传球
A 权值:在传球的时候我们当然得选取一个比较合适进攻的队友去把球传过去,但是选取这个点我们最好是不要单纯的考虑谁离对方球门近我们就把球传出去,还得考虑队友得到球以后对我们的进攻是否很有利,有些虽然一个球员很适合去传球给他但是他得到球后很快就会有对方的队员把他防守死,这种情况是不有利于我们传球的。当然最好的方案还是给每个球员设置一个值,然后考虑他离对方门的远近,他周围是否有人在防守(最好是把前面有人和后面有人做出不同的考虑)分别对他的权值做出加减。但是一个大前提是,我们可以把球传成功,即我们的队员会比对方提前得到球。最后我们就会得出若干适合传球的队友,并把他们按权值排序。
B 点的选择:传球不一定非得传到人的身体内,也可以给他周围的一些传过去,这也没有什么比较合理的传球点,(1)我以前在做的时候是把当前要传球给的队员前面的点做出一系列的扫描(这个前面是指进攻的方向),(2)但是也可以把这个球员身体朝向的正前方的直线上选取一系列的点,(3)也可以把这个球员的坐标与对方的门做一个连线在此上选出一些点,我们当然不好说哪个好哪个坏,因为其各有好处。拿(1)来说吧,这个扫描比较范围大也有利于我们进攻但是没有考虑我们球员的朝向会有减少传球的机会。
C 具体情况:在传球时当往队友身体内传的时候时,我们可以把速度给大一点,但是提前传球的时候我们必需考虑到球场的噪声,不要让球速太大去传球这样容易丢球,主要是队友可以几周期跑向传球的那个点,然后按个周期做出我们要以多大的速度把球踢出去。
D 在做出传球命令的同时要让接球的队友也同时跑向那个点这样就避免不必要的丢球。
4 射门
A 点的选择:一般的方案是从球门的一边向球门的另一边扫描过去得到对方守门员扑不到的一个点去射门。在这次的比赛中,我们把这个算做了一小点的改动,就是当我们在守门员的左边的话我们就从左边开始扫描,反之从右边开始扫描。这样做的好处有时会避免一些不必要的失误(当门员有靠左边,而我们的射门队员有右边,如果只是从左边向右边扫描的话,可能会有一个点刚好是门员右边的一个点虽然计算出会进门但是加上平台有噪就会可能丢球。但是我们如果是从右往左扫描的话就不会出现这种情况)。
B 当我们离对方门员一定距离的时候我们最好是考虑到把门员射穿了,因为球速很大时对方这个周期虽做了将要控球的判断但是那个周期球到了身体后面就实现的把人射穿。
C 还有在单刀的时候,不需要配合就把门员过了把球踢进门。这个过程我还没有实现,就说一下我个人的看法:先把球踢到靠左的位置让门员做出我们要从左路射门,但是我们却是要从右路射门。因为门员的扑球范围是(-90~90),即到了背后门员是不能扑球的。
5 代球
A 控球:一个好的控球会给我们进攻代来很多的机会,当过了对方的球员,会把他们防守的策略打破,在一定程度上有利我们倒球。
控球的中心还是如何判断好每个周期我方和对方哪一方会控球,把这个算好了才能做出我方球员把球踢到哪个点(当然这个点我方下一周期还可以控球而对方还是得不到球),这就要我们这在这个周期算出对方的运动轨迹,因为对方不知道下一个周期球会在哪个位置,他只能从这个周期去推测下一个周期球会在哪,我们可以根据对方的体力,身体朝向,速度等其它因素做出判断,把球踢向一个对方下一个周期不管如何运动也不可能得球的点,但我方在下一个周期还是可以控球的。
B 代球:代球的核心就是把球不断的向对方球门推进,但是有些情况不一定我们非得踢向对方球门的方向才行,我们也可以不断的去迂回去代球,当我方进攻时,有时我们的队友被对方防守的很牢,我们也不能向前代球我们也可以考虑向自己能代球的方向代球前进,使我们的队友可以跑开位,然后等到一个缺口去进行进攻。代球的大体思路是我们选取一些有利于进攻的点,并分别判断出哪个点我们可以把球踢过去而对方却得不到球,一般是身体朝向上的一系列点,有时可能不是门方向上的,但是我们得不断做出调节使它大体上向门的方向进攻。不是每一个周期我们都去踢球,有时球在这个周期有它自己的速度,但这个是这个速度和我们想要的方向相同,并且它这样运动下去也不会被对方得球,我们就没有必要去再踢它,因为不仅浪费体力还浪费时间。我们可以跟着球一起跑,这就是让球在自己的体内一起向对方的球门进攻,最大的好处是球不会丢。
总结:mζ
这是自己在这几年开发过程中的一点点心得,可能有很多不足的地方。希望对这次球队开发的朋友们有一些帮助,愿这次竞赛成功~