文档详情

游戏人工智能.doc

发布:2017-03-22约2.57万字共10页下载文档
文本预览下载声明
六、有限状态机 一、有限状态机原理及其模型 原理:1、有限状态机的结构和类 游戏软件AI结构 class AIEntity { public: int type; int state; int row; int column; int health; int strength; int intelligence; int magic; }; 状态常量 #define kRoam 1 #define kEvade 2 #define kAttack 3 #define kHide 4 2、有限状态机行为及转换函数 游戏软件AI转换函数 class AIEntity { Public: int type; int state; int row; int column; int health; int strength; int intelligence; int magic; int armed; Boolean playerInRange(); int checkHealth(); }; 改变状态 if ((checkHealth()kPoorHealth) (playerlnRange()==false)) state =kHide; else if (checkHealth() kPoorHealth) state=kEvade; else if (playerlnRange()) state=kAttack; else state=kRoam; 模型: 一般有限状态机图 二、设计包含几种状态的状态机图 鬼怪有限状态机 三、主要实验代码: #define SPACE 0x20 #define ESC 0x1b #define ANT_CHAR_EMPTY + #define ANT_CHAR_FOOD 153 #define HOME_CHAR H #define FOOD_CHAR F #define FOOD_CHAR2 f #define FOOD_HOME_COLOR 12 #define BLOCK_CHAR 177 #define MAX_ANT 50 #define INI_SPEED 3 #define MAXX 80 #define MAXY 23 #define MAX_FOOD 10000 #define TARGET_FOOD 200 #define MAX_SMELL 5000 #define SMELL_DROP_RATE 0.05 #define ANT_ERROR_RATE 0.02 #define ANT_EYESHOT 3 #define SMELL_GONE_SPEED 50 #define SMELL_GONE_RATE 0.05 #define TRACE_REMEMBER 50 #define MAX_BLOCK 100 #define NULL 0 #define UP 1 #define DOWN 2 #define LEFT 3 #define RIGHT 4 #define SMELL_TYPE_FOOD 0 #define SMELL_TYPE_HOME 1 #include stdio.h #include conio.h #include dos.h #include stdlib.h #include dos.h #include process.h #include ctype.h #include math.h void WorldInitial(void); void BlockInitial(void); void CreatBlock(void); void SaveBlock(void); void LoadBlock(void); void HomeFoodInitial(void); void AntInitial(void); void WorldChange(void); void AntMove(void); void AntOneStep(void); void DealKey(char key); void ClearSmellDisp(void); void DispSmell(int type); int AntNextDir(int xxx,int yyy,int ddir); int GetMaxSmell(int type,int xxx,int yyy,int ddir); int IsTrace(int xxx,int yyy); int MaxLocation(int num1,int num2,int num3); int CanGo(int xxx,int yyy,int ddir); int Ju
显示全部
相似文档