勤能补拙,Expter

成都游戏Coder,记录游戏开发过程的笔记和心得!

一个基于足球AI仿真机的模拟实现

       author:expter
       date   2010/06/30
 
       介绍:  世界杯现在如此的备受瞩目和关注,本文介绍如何实现一个基于足球AI的实现,而作为程序员我们关注的不是目标用其赢得世界杯,而是创造一个把球踢好的智能体,加上最近上班轻松,晚上较闲,加上去年实现的一个AI模型与平时写的游戏智能算法,想组织起来完成一个足球模拟玩玩。
      
      本文会首先介绍一种基于AI仿真机的实现流程图,后面我将会用大量的篇幅详细介绍各个实现细节,与具体足球战术,此足球AI主要是主动攻击性AI,所以还需要具体完善加强防御性的AI,所以具体代码现在将不会现在放出。以后实现完整过后会完整公开,现在主要设计描述如下。
  
        足球的游戏规则不是很复杂,就是2个球队,然后每个球队一个守门员与几名球员,目的就是踢进对方的球门。简单的足球是没有傻子的,也就没有犯规,越位,头球,点球以及乌龙球。以后可能会增加上面几种。

        一个简单的游戏的具体环境如下:
         1.一个足球场(FootBallPitch)
         2.一个足球     FootBall
         3.二个球门     Goal
         4.二个球队     FootBallTeam
         5.场上12名足球队员(每队6名,期中5名为球员2名后卫3名前锋,还有1名守门员)
         6.球员             FootBaller    守门员  GoalKeeper
  
     然后只要理清上面的描述然后把具体的实现封装到每个类中,就实现了1个简单的足球仿真模拟,实现上面的功能代码还是简单,但是如何组织强大攻击性强大,防御性强的AI还是挺复杂的。
    
       下面将给出具体UML实现类图:   
       
          
         由于是基于智能体的足球AI所以还是借鉴了FSM模型,我们可以把每个Player处于不同的状态进行不同的操作,具体把操作类型和事件处理都放在具体的状态中。
         基于球场上运球的FootBaller有下列状态ChaseBall 追球状态,Dribble运球  Gohome 归位   KickBall 踢球  ReceviveBall传球 
         基于守门员GoalKeeper有InterceptBall 拦截  PutBallBackInPlay发球.
  
        这里为了区分队员是前锋还是后卫,我们给队员增加一个行为Behaviors,让其根据自己的行为做相应的事情.。

        其中所有的图像处理都是用的GDI的绘制,程序采用的Win32编写方式。

       上面的设计基本是现在程序的设计方案和流程图。

        后期完善部分:
        1.引入基于事件响应,FootBaller 可以通知同队FootBaller 的接收响应的消息处理,比如A发现B的位置很好,A可以通知B我要传球到一个坐标点。
       2.加强防御和攻击AI。
       3.完成具体方案后,公布所有的方案设计和具体算法,后期引入脚本机制,通过外部编写脚本实现不同队伍AI模拟。       

          

posted on 2010-06-30 23:36 expter 阅读(2817) 评论(7)  编辑 收藏 引用 所属分类: 其他学习笔记算法与数据结构Ai

评论

# re: 一个基于足球AI仿真机的模拟实现 2010-07-01 08:34 ccsdu2009

看看游戏人工智能编程精粹吧 罗岱翻译的   回复  更多评论   

# re: 一个基于足球AI仿真机的模拟实现 2010-07-01 09:27 expter

@ccsdu2009
可以,现在主要加强功能上的Ai,,  回复  更多评论   

# re: 一个基于足球AI仿真机的模拟实现 2010-07-03 13:57 102

3rertgxdtb   回复  更多评论   

# re: 一个基于足球AI仿真机的模拟实现 2010-07-03 13:57 102

怎么这么啊
  回复  更多评论   

# re: 一个基于足球AI仿真机的模拟实现 2010-07-03 13:58 102

杂了呀?  回复  更多评论   

# re: 一个基于足球AI仿真机的模拟实现 2010-07-04 22:30 expter

@102
楼上的干什么,这几天出去玩了。。你要说什么?  回复  更多评论   

# re: 一个基于足球AI仿真机的模拟实现 2010-07-09 23:02 WindyWinter

一个著名的人工智能课题是RoboCup http://www.robocup.org/ ,跟AI贴得最近的是Soccer Simulation League 2D。  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理