网站大量收购独家精品文档,联系QQ:2885784924

蔺广逢《游戏设计概论》第06章.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
游戏设计概论(第二版) 游戏设计概论 第06章 数据结构与人工智能 6-1 数据结构简介 6-2 栈与队列 6-3 链表 6-4 树形结构 6-5 图形结构 6-6 排序与查找 6-7 人工智能 6-8 移动型游戏AI专题研究 6-1-1 算法 数据结构+算法=可执行的程序或项目 数据结构:决定程序能否快速而有效的完成任务 算法:决定程序能否清楚而正确的解决问题 6-1-2 线性表(Linear List) 简单 典型的线性表:数组 (a1,a2,a3,……,an-1,an) Linear List=(D,R) D={0,1,2,….,9} R={(0,1),(1,2),…,(8,9)} 一般来说,长度为n的线性表 (a1,a2,…,ai,…,an)的顺序存储结构。用一维数组表示。 例:下图为一个长度为8的线性表顺序存储在长度为10的存储空间中。现在要求在第二个元素之前插入一个新元素87。再在第9个位置插入14。 6-2-1 栈(Stack) 操作在栈顶进行,后进先出(LIFO) 栈的顺序存储 与线性表一样,用一维数组S(1:m)表示栈的顺序存储空间 S(top)表示栈顶元素 栈的基本运算: (1)插入元素称为入栈运算,top=top+1; (2)删除元素称为退栈运算,top=top-1; (3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化 6-2-2 队列(Queue) 操作在队列的两端进行,尾端插入,前端删除 先进先出(FIFO) 队列的顺序存储结构 实现:用一维数组实现Q(1:m) 队列的运算:入队运算 、退队运算 6-3-1 单链表( Single Linked List ) 链表的基本组成元素:节点 相邻节点不必存储于邻接内存地址内 首节点 例如 :线性链表 (a1,a2,a3,a4,a5) 6-3-2 循环链表 (Circular Linked List) 循环链表 循环链表:表中最后一个结点的指针指向头结点,使链表构成环状 循环链表的特点: 增加一个表头结点 最后一个结点的指针域不为空,指向表头结点 空表和非空表的运算统一(循环链表中至少有一个结点) 循环链表的运算 6-3-3 双链表 (Double Linked List) 沿两个方向查找数据 基本结构:数据域,左指针域(指向前驱) ,右指针域(指向后继) 6-4-2 二叉树 二叉树与树形结构的区别是: 每个结点最多有两棵子树; 子树有左右之分。 二叉树的五种形态 6-4-3 排序二叉树 二叉树的建立规则 第一个输入的数据是二叉树的根节点。 之后输入的数据以递归的方式与根节点进行 比较,小于根节点的置于左子树,大于根节 点的置于右子树。 对数据(32、25、16、35、27)建立排序二叉树。 6-4-4 平衡二叉树 排序二叉树:易产生歪斜,高度增加,查找效率下降 平衡二叉树:特殊的排序二叉树 插入或删除数据时,先检查是否平衡 6-4-5 二叉树的遍历 6-4-6 二元空间分割树 二元空间分割数 每个节点有两个子节点,用二叉树表示 平面游戏空间的常用分割方法 碰撞检测 6-4-7 四叉树与八叉树 二叉树有两个分支,分支更多有更好的分类能力 四叉树 每个节点有四个子节点 游戏场景的地形用四叉树划分 八叉树 每个节点有八个子节点 双层四叉树,用于3D空间的场景管理 6-5 图形结构 树与图的区别: 树形结构:描述的是节点与节点间的层次关系。 图形结构(Graph):描述的是节点与节点之间是否相连的关系。 图在游戏中的应用 判断人物是否可以在两点间移动 路径的长短 从某点到某点的最优路径 6-5-1 图形的定义 定义 由顶点和边组成的集合 表示:G=(V,E) V:是所有顶点的集合 E:是所有边的集合 有向图形 (V1,V2) 无向图形 V1,V2 6-5-2 MST最小扩张树 加权图形(Weighted Graph) 在图的边加上权重值(Weight) 最小扩张树MST(Minimum Spanning Tree) 最小成本(Cost)扩张树 最小距离(Distance)扩张树 举例(如右图) 6-5-2 MST最小扩张树 Prim‘s算法 对于加权图形G=(V,E),设V={1,2,…,n},U={1} 从U-V差集中找出一个顶点x,能与U集合中的某点形成最小成本的边,且不会造成环路,将顶点x加入U集合中 重复执行步骤2 直到U=V 使用P算法求出右图的最小成本扩张树 6-5-3 路径算法的应用 路径算法是图形应用的一种 游戏地图中的路径计算以四方向移动为主 6-5-3 路径算法的应用 路径算法有多种 逼近法:最简单直观的算法 直接从当前位置坐标渐

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8135026137000003

1亿VIP精品文档

相关文档