UAC2015W101920SourceUAC2015W101920章节.pptxVIP

  • 0
  • 0
  • 约3.8千字
  • 约 23页
  • 2017-11-27 发布于广东
  • 举报
第19-20课 游戏常用算法 —算法课程名称 Lesson Title游戏常用算法学习者等级 Learner Level 专业能力认证课程模块 Module 算法本课时长 Duration 225分钟学习者背景 Learner Background本课程要求学习者熟悉Unity界面、学完应用能力认证课程基础阶段。教学目标 Objectives? 扫雷游戏主要算法(递归算法)? 对对碰游戏的主要算法? 俄罗斯方块游戏的主要算法? A*寻路算法主题 Topics 扫雷游戏 对对碰游戏 俄罗斯方块游戏 A*寻路算法扫雷游戏一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数)递归的概念:分析:n的阶乘n! = n * (n-1) * (n-2) * ...* 1(n0)扫雷游戏递归满足2个条件:有反复执行的过程(调用自身)有跳出反复执行过程的条件(递归出口)n的阶乘n! = n * (n-1) * (n-2) * ...* 1(n0)int recursive(int i) { int sum = 0; if (0 == i) return (1); else sum = i * recursive(i-1); return sum; }跳出条件调用自身扫雷游戏分析扫雷游戏中的递归算法鼠标点击的位置扫雷游戏111011011? 点击的位置如果周围的地雷总数为0,则周围相邻的地图打开。? 如果周围打开的地图的地雷总数为0,则继续打开此地图周围的地图。? 如果新开的地图,仍有为0的则继续以上的逻辑。主题 Topics 扫雷游戏 对对碰游戏 俄罗斯方块游戏 A*寻路算法对对碰游戏玩法:交换相邻两个宝石的位置,同一直线上,相同颜色的宝石数量大于等于3即可消除。主题 Topics 扫雷游戏 对对碰游戏 俄罗斯方块游戏 A*寻路算法俄罗斯方块游戏玩法:俄罗斯方块游戏可能产生下面七种形状的方块。这些方块有我们的方向键的控制可以产生旋转,左右移动和加速前进等,往下掉,只到遇到下面已经有方块挡住停下来。如果一行完全排列满,则会消掉,如果排列到了顶部,则会失败。俄罗斯方块游戏以 为例,定义旋转的四种状态{1,0,0,0},{1,1,0,0},?{0,1,0,0},?{0,0,0,0}?{0,1,1,0},{1,1,0,0},?{0,0,0,0},?{0,0,0,0}?七种形式,四种旋转状态{0,1,1,0},{1,1,0,0},?{0,0,0,0},?{0,0,0,0}?{1,0,0,0},{1,1,0,0},?{0,1,0,0},?{0,0,0,0}?主题 Topics 扫雷游戏 对对碰游戏 俄罗斯方块游戏 A*寻路算法A*寻路算法假设有人想从A点移动到一墙之隔的B点,如下图,绿色的是起点A,红色是终点B,蓝色方块是中间的墙。搜索区域被我们划分成了方形网格。像这样,简化搜索区域,是寻路的第一步。这一方法把搜索区域简化成了一个二维数组。网格中点被称为“节点”。为什么不把他们描述为方格呢?因为有可能你的路径被分割成其他不是方格的结构。他们完全可以是矩形,六角形,或者其他任意形状。节点能够被放置在形状的任意位置-可以在中心,或者沿着边界,或其他什么地方。我们使用这种系统,无论如何,因为它是最简单的。A*寻路算法正如我们处理上图网格的方法,一旦搜索区域被转化为容易处理的节点,下一步就是去引导一次找到最短路径的搜索。在A*寻路算法中,我们通过从点A开始,检查相邻方格的方式,向外扩展直到找到目标。我们做如下操作开始搜索:? 从点A开始,并且把它作为待处理点存入一个“开启列表”。开启列表就像一张购物清单。尽管现在列表里只有一个元素,但以后就会多起来。你的路径可能会通过它包含的方格,也可能不会。基本上,这是一个待检查方格的列表。? 寻找起点周围所有可到达或者可通过的方格,跳过有墙,水,或其他无法通过地形的方格。也把他们加入开启列表。为所有这些方格保存点A作为“父方格”。? 从开启列表中删除点A,把它加入到一个“关闭列表”,列表中保存所有不需要再次检查的方格。在这一点,你应该形成如图的结构。在图中,暗绿色方格是你起始方格的中心。它被用浅蓝色描边,以表示它被加入到关闭列表中了。所有的相邻格现在都在开启列表中,它们被用浅绿色描边。每个方格都有一个灰色指针反指他们的父方格,也就是开始的方格。A*寻路算法接着,我们选择开启列表中的临近方格,大致重复前面的过程,如下。但是,哪个方格是我们要选择的呢?是那个F值最低的。路径评分公式:F = G + H? G =?从起点A,沿着产生的路径,移动到网格上指定方格的移动耗费。? H =?从网格上那个方格移动到终点B的预估移动耗费。我们的路径是通过反复遍历开启列表并且选择具有

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档