游戏人工智能实验报告二.doc

游戏人工智能实验报告二.doc

ID:49727213

大小:97.00 KB

页数:15页

时间:2020-03-02

游戏人工智能实验报告二.doc_第1页
游戏人工智能实验报告二.doc_第2页
游戏人工智能实验报告二.doc_第3页
游戏人工智能实验报告二.doc_第4页
游戏人工智能实验报告二.doc_第5页
资源描述:

《游戏人工智能实验报告二.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.实验二聚集与避障实验报告一、实验目的掌握游戏中聚集与避障的人工智能算法,理解宽视野和有限视野的区别二、实验仪器Windows7系统MicrosoftVisualStudio2015三、实验原理及过程//描述聚集与避障的算法原理//描述程序实现时的思路包括对每个调用的API进行详细说明智能体只考虑哪些在检测盒内的障碍物。初始的时候,要将游戏世界中所有的障碍物都迭代到内存中,并标记哪些在检测盒内的障碍物以作进一步分析,然后把所有已经标记的障碍物都转换到智能体的局部空间。转换坐标后,那些x坐标为负值的物体将不被考虑,所以问题就变得简单多了,接下来必须要检测障碍物是否和检测盒重叠。使障

2、碍物的包围半径扩大检测盒宽度的一半。然后测试该障碍物的y值是否小于这个值(即障碍物的包围半径加上检测盒宽度的一半)。此时,只剩下那些与检测盒相交的障碍物了。接下来我们找出离智能体最近的相交点。再一次在局部空间中计算,第三步中扩大了障碍物的包围半径。用简单的线圆周相交测试方法可以得到被扩大的圈和x轴的相交点。四、实验结果范文..范文..范文..五、实验心得(需包括有何不足如何改进)//你认为目前的聚集与避障有什么不足之处,如何改进目前的聚集与避障的不足之处在于:可能会因为错误的方案设计而搞错导致路线的躲闪。还有就是从实验2开始,我的电脑本身出现了COMCTL32.LIB文件LINK

3、的错误,后来在同学的帮助下我解决了这个问题。如何改进:实验前必须要经过精确的计算并且代码不能出现任何错误。把COMCTL32.LIB文件载入文件以让程序正确运行。六、主要代码#include"main.h"范文..#include"time.h"//---------------------------------------------------------------------------/*Book:AIforGameDevelopersAuthors:DavidM.Bourg&GlennSeemannExample:Flocking,Chapter4*///-----

4、----------------------------------------------------------------------#define_TIMESTEP0.0025#define_TOL1e-10#define_FWDTIME10#define_THRUSTFACTOR1.0#define_CHASESETUPtrue#define_SPAWN_AREA_R100#define_MAX_NUM_UNITS20#define_UNIT_LENGTH4#define_OBSTACLE_RADIUS_FACTOR8#define_OBSTACLE_RADIUS_OB

5、STACLE_RADIUS_FACTOR*_UNIT_LENGTH#define_COLLISION_VISIBILITY_FACTOR25#define_WIDEVIEW_RADIUS_FACTOR200#define_NARROWVIEW_RADIUS_FACTOR50#define_LIMITEDVIEW_RADIUS_FACTOR30#define_SEPARATION_FACTOR5#define_BACK_VIEW_ANGLE_FACTOR1#define_FRONT_VIEW_ANGLE_FACTOR1#define_NUM_OBSTACLES8//GlobalVa

6、riables:intFrameCounter=0;RigidBody2DUnits[_MAX_NUM_UNITS];VectorTarget;VectorObstacles[_NUM_OBSTACLES];范文..boolInitialize(void){inti;GetRandomNumber(0,_WINWIDTH,true);for(i=0;i<_MAX_NUM_UNITS;i++){Units[i].fMass=10;Units[i].fInertia=10;Units[i].fInertiaInverse=1/10;Units[i].vPosition.x=GetRa

7、ndomNumber(_WINWIDTH/2-_SPAWN_AREA_R,_WINWIDTH/2+_SPAWN_AREA_R,false);Units[i].vPosition.y=GetRandomNumber(_WINHEIGHT/2-_SPAWN_AREA_R,_WINHEIGHT/2+_SPAWN_AREA_R,false);Units[i].fWidth=_UNIT_LENGTH/2;Units[i].fLength=_UNIT_LENGTH;Units[i].fHei

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。