当前位置:首页 > 智能硬件 > 机器人
[导读] 前段时间做了个人机对战的五子棋游戏,觉得人工智能非常有意思。所以最近没事,又思考了一下机器人足球的人工智能算法。 机器人足球和五子棋游戏的主要联系是:都需要随时分析整个棋盘/球场的状态,

前段时间做了个人机对战的五子棋游戏,觉得人工智能非常有意思。所以最近没事,又思考了一下机器人足球的人工智能算法。

机器人足球和五子棋游戏的主要联系是:都需要随时分析整个棋盘/球场的状态,并作出最合适的反应;主要区别是:五子棋游戏是回合制的,而机器人足球是“即时”游戏,另外五子棋只要基于某一步棋子考虑,但机器人足球必须考虑23个人/球(棋子)。

表面看区别蛮大的,现在具体来分析一下:

1)关于机器人足球的“即时”特点

22个人,再加上一个足球,场上一共有23个物体在同时运动。我们不可能说机器人足球和五子棋一样,先一个人动,其他人站着,第一个动完再第二个人动。。.。这样不是在踢球,而是在表演节目。如果当年《星际争霸》这样的即时战略游戏,当人全部部署好之后,按一个ready键通知计算机,然后计算机慢慢悠悠测挨个处理它控制的坦克,那还有什么乐趣。

有人肯能会说可以用多线程(我事先申明,我对多线程的了解,仅限于几个简单的例程,所以一下的叙述可能有不对的地方)。没错,多线程确实可以同步处理,并且对于足球这样的游戏,场上人员是确定的(不考虑被红牌罚下的),用23个线程来控制人和球,似乎也没什么不妥()。但是如果是《星际》,造一个坦克就要新建一个进程,打死一个大兵就要销毁一个进程。。.。好像这样开销比较大。更何况计算机如果造出100架坦克,外加100个大兵,消耗的资源将相当可观。虽然我不知道《星际》是如何实现即时战略的,但我想即使是用多线程,也肯定有专门的算法对其进行优化。

用得着这么复杂么?我们再仔细分析一下即时制跟回合制之间的关系,会发现两者其实没有本质的区别,更准确的说,回合制其实是即时制的一个特例而已!我做五子棋的时候,为了让人和计算机同步,设置了一些标志。当人下过棋后,将标志复位,计算机才可以下棋。它下过一次后将标志置位,就不能继续下了,等待人下棋。如果我们把这些标志取消,那么计算机就会根据当前棋盘情况自顾自的下棋,你赶得上它的节奏你可能会赢,赶不上的话,就等着输吧!这样五子棋也就成了一个即时战略的游戏了。

所以我认为,对于机器人足球,只需要轮循计算机控制的所有球员,让每个球员针对场上情况作出最正确的响应就行了。计算机的速度非常快,虽然是轮循,但几乎不会察觉出其中的先后次序,给人的感觉就是在同时进行。其实操作系统的多线程,也是这样实现的。X86构架的cpu,多线程多任务程序是运行在保护模式下的,其根本思想就是将cpu时间切片,这个时间片上处理a任务,不管有没有处理完,下一个时间片上一定处理b任务,一圈循环下来,再继续执行未完成的a任务。

但是还有一个问题。由于计算机的反应远比人快,如果设计FIFA这样的人机交互游戏,很可能计算机将它控制的所有物体都计算好多遍了,可人还没作出反应呢。对于强调反应能力的即时制游戏,这种思维速度的差距可能无法接受。我的看法是,可以让计算机处理完一遍所有物体后,暂时停顿一段时间,比如500ms,比如1s(具体长度需要测试后才能得出)。而且,计算机停顿时间的长短,也可以用来区分难度,难度越低,计算机停顿的时间也越长。当然,我这里所说的停顿,并不是指计算机真的停止处理任何事务。计算机仍需要按照事先设定的运动方向和速度计算每个球员的新坐标并不断刷新,以显示出动画效果。只是每隔1s钟,才会作出特殊反应(踢球、抢断等),改变运动方向和速度

2)机器人足球计算机考虑的点比五子棋多

场上有23个物体需要计算机处理,情况似乎比五子棋复杂的多了。但真的需要无差别的处理23个物体吗?

我们来看看真实的足球。我不是很喜欢足球,对足球规则和各种战术也不了解。我只谈谈我的感觉。

对于球来说,虽然它随时都在运动,但抽象看来,它在场上的情况非常简单:向某个方向运动,运动速度如何,目前所在的坐标,就这么三个要素。其他的什么由哪方控制,谁踢了一脚,都不需要也不应该考虑(这符合oop思想)。

再来看看22个运动员。其实我们可以发现,往往只有离球最近的球员,才会作出相应的反应(包括盘带/踢球、传球、接球、抢断、射门等,都只有靠近球的队员才会作出,甚至防守的时候,也往往是防守有球的球员,归根到底还是离球非常近)。没见过球在前场,队员却在后场拼抢的(当然不考虑小动作:))。所以离球较远的球员,只需向球跑动甚至暂时停止不前(这个可以用随即函数来控制。影响随机值的是球员的积极性和离球的远近。积极的球员更加主动的奔跑,离球稍近的奔跑更主动)。只有离球近的球员,才会作出特殊的处理。这样细细划分后,整体算法思路就比较清晰了。

通过上面的分析,现在来总结一下:

设计机器人足球的时候,可以使用轮循的方法,挨个处理22个队员和1个球。一般情况下,处理方法也就是:通过原来的坐标和事先确定的方向、速度,计算新的坐标。当计算完所有物体的新坐标后,刷新屏幕,以显示出动画效果。

每隔一段时间(或者若干次后),允许计算机对每个物件作出特殊操作(踢球、传球等),这些特殊操作的本质就是改变23个物体的速度和方向,使接下来一段时间物体的运动轨迹产生变化。

做特殊操作时,可以按照球员序号遍历。针对每个球员需要做的事情是:

1.计算这个球员离球有多远。超过一定距离,就随意处理(比如上面提到的,用随即函数确定这个人是向球跑还是停止)

2.离球近的话,再查询球周围有没有离球更近的球员(考虑到时间复杂度,不推荐真的去遍历整个球场,而是维护一张表,用来记录每个球员当前和球的距离)

3.如果有对方球员离球更近,则可选的操作有:更加靠近、抢断、等等(我不太懂足球,不知道还有什么操作)。可以用随机数来确定执行的操作

4.如果有己方球员离球更近,则可以断定此人正在带球,此时可选的操作是:向他移动准备接应、向对方球门移动准备接传球进攻

5.如果当前没有其他球员离球更近,那此时可以断定该球员正在带球。此时需要考察周围安全距离内有没有对方球员,有没有己方球员,离球门多远等等问题,并作出传球、射门、盘带等等操作(没必要真的计算其他人跟自己的距离。由于此时离球近,可以忽略不计。完全可以用其他人离球的距离来代表。具体原理,踢场球就知道了:))。这些操作比较简单,只要用一些选择语句就可以了。有多种操作可供选择的时候,可以用随机数来确定。球员的各种属性都可以影响随机数的取值。

除此之外,还有一些例外操作:比如当出现运动员跑着跑着出线、相撞、碰到球等情况,此时即使还没有到例行的处理特殊操作的时候,但也必须立即针对涉及的球员执行特殊操作,否则不真实、不合理的。

最后我们来谈一下球员和球的数据结构

球员:

{

方向/速度/当前坐标。。.。

传球()/踢球()/射门()/接球()/抢断()。。.。。./跑动()

计算新坐标()

}

足球:

{

方向/速度/当前坐标。。.。

计算新坐标()

friend:

球员::传球()/踢球()。。.。。. //或者做一个改变方向/速度的接口,让球员中的函数能调用这个接口

}

除此之外,还需要一些表,维护诸如每个球员离球的距离等信息,方便各种处理。另外还有一些细节,可能是做游戏必须的,但由于相对来说比较简单,所以在这里就不多分析了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭