程序设计基础 迷宫游戏计算机教学课件PPT

上传人:文*** 文档编号:52973466 上传时间:2022-02-09 格式:PPT 页数:23 大小:750KB
返回 下载 相关 举报
程序设计基础 迷宫游戏计算机教学课件PPT_第1页
第1页 / 共23页
程序设计基础 迷宫游戏计算机教学课件PPT_第2页
第2页 / 共23页
程序设计基础 迷宫游戏计算机教学课件PPT_第3页
第3页 / 共23页
点击查看更多>>
资源描述
1home back first prev next last 19_ 迷宫游戏迷宫游戏2home back first prev next last 这节课即我们即将学习这节课即我们即将学习 迷宫的绘制迷宫的绘制 数字地图的使用数字地图的使用 路径的自动搜索路径的自动搜索3home back first prev next last 迷宫程序界面如右图所迷宫程序界面如右图所示示 点击点击“重建地图重建地图”,地,地图被擦除,用户通过点图被擦除,用户通过点击鼠标或按着鼠标左键击鼠标或按着鼠标左键拖动鼠标来绘制地图拖动鼠标来绘制地图 绿色代表通道,小猫只绿色代表通道,小猫只能在通道上行走,不能能在通道上行走,不能走到白色的区域上面去走到白色的区域上面去 点击点击“探索迷宫探索迷宫”,小,小猫自动在绘制完成的地猫自动在绘制完成的地图上寻找路径,直到吃图上寻找路径,直到吃到鱼或发现没有通到鱼到鱼或发现没有通到鱼的路径可走为止的路径可走为止4home back first prev next last 程序中有程序中有5个角色,分别是小猫汤姆、绘制个角色,分别是小猫汤姆、绘制通道的绿色方块、通道的绿色方块、“重建地图重建地图”按钮、鱼按钮、鱼和和“探索迷宫探索迷宫”按钮按钮5home back first prev next last 地图绘制原理地图绘制原理 将屏幕划出一个宽将屏幕划出一个宽420高高300的区域,然后将此的区域,然后将此区域分为宽区域分为宽30高高30的小方格。这样的小方格有的小方格。这样的小方格有14列,列,10行,共计行,共计140个。个。“通道通道”角色是一个角色是一个宽宽30高高30的绿色方块。绘制地图时,判断鼠标的绿色方块。绘制地图时,判断鼠标按下时鼠标光标所处的位置落于哪个小方格中,按下时鼠标光标所处的位置落于哪个小方格中,然后将然后将“通道通道”角色移至该方块的左下角,使角色移至该方块的左下角,使用用“图章图章”方法绘制一个方格方法绘制一个方格6home back first prev next last 地图绘制原理地图绘制原理 为了易于程序判断,除了在屏幕上绘制地图,还要保存为了易于程序判断,除了在屏幕上绘制地图,还要保存一幅一幅“数字地图数字地图”。 建立链表建立链表map,插入,插入140个个0,代表空白地图。链表,代表空白地图。链表map的每一个元素,代表一个小方格。元素值为的每一个元素,代表一个小方格。元素值为1时,代表时,代表方格为绿色通道。元素值为方格为绿色通道。元素值为0时,代表方格为白色障碍。时,代表方格为白色障碍。7home back first prev next last 地图绘制原理地图绘制原理 链表链表map第第1-14个元素代表第一行方格,第个元素代表第一行方格,第15-28个元素代表第二行方格,依此类推。绘制地图个元素代表第二行方格,依此类推。绘制地图时,除了根据鼠标光标位置绘制时,除了根据鼠标光标位置绘制“通道通道”外,外,也要将相应方格对应的链表元素设置为也要将相应方格对应的链表元素设置为1。数字。数字地图如下图所示。第地图如下图所示。第x行行y列方格在链表中对应列方格在链表中对应的元素是的元素是(x-1)*14+y,比如第,比如第2行行2列方格在链表列方格在链表中对应的元素是中对应的元素是(2-1)*14+2=16,其值是,其值是0,代表,代表一个空白的障碍方格一个空白的障碍方格8home back first prev next last 地图绘制原理地图绘制原理 屏幕上的地图是显示给人看的,叫屏幕上的地图是显示给人看的,叫“视图视图” 数字地图是程序判断、运行的依据,叫数字地图是程序判断、运行的依据,叫“数据数据”或或“文档文档” 如果希望程序运行效果和人的期望相同,则数如果希望程序运行效果和人的期望相同,则数字地图中数据所表达的含义必须和字地图中数据所表达的含义必须和“视图视图”显显示的效果一致示的效果一致9home back first prev next last 地图绘制原理地图绘制原理 当点击当点击“重建地图重建地图”按钮后,按钮后,执行右面代码执行右面代码 作用是将小猫探索迷宫的标作用是将小猫探索迷宫的标志变量志变量Run设为设为0,小猫停止,小猫停止探索,删除地图探索,删除地图 map 链表内链表内容,重新插入容,重新插入140个个0,清除,清除界面全部画笔绘制内容,得界面全部画笔绘制内容,得到一个空白的地图。播放声到一个空白的地图。播放声音音 Meow 目的是告诉用户按目的是告诉用户按钮已经被点中钮已经被点中1516171819202122232425262712345678910111213 0 1 2 3 4 5 6 7 8 9 10 11 12 13987654321011home back first prev next last 地图绘制原理地图绘制原理 右面代码的作右面代码的作用是绘制地图用是绘制地图 当按下鼠标时,当按下鼠标时,根据鼠标位置根据鼠标位置计算应绘制哪计算应绘制哪一个方格(鼠一个方格(鼠标的标的x坐标坐标-鼠标鼠标的的x坐标除以坐标除以30的余数)的余数)/30 这这是为了求得鼠是为了求得鼠标所在方格的标所在方格的整数列整数列12home back first prev next last 地图绘制原理地图绘制原理 因为屏幕左边因为屏幕左边界界x坐标为坐标为-240,为使求得列数为使求得列数为从左到右自为从左到右自0(第一列标(第一列标号为号为0)开始,)开始,统一加统一加8 同样的原因,同样的原因,计算鼠标所在计算鼠标所在方格行数时因方格行数时因为鼠标下边界为鼠标下边界y坐标为坐标为-180,统一加统一加613home back first prev next last 当点击当点击“探索迷宫探索迷宫”按钮后,执行右面代按钮后,执行右面代码码 作用是将作用是将pass链表初始链表初始化为化为140个个0,表示地图,表示地图上所有方格都没有探索上所有方格都没有探索过过 然后将然后将 Run 设置为设置为1,允许探索迷宫程序运行允许探索迷宫程序运行 广播事件广播事件“探索迷宫探索迷宫”,触发探索迷宫程序运行触发探索迷宫程序运行14home back first prev next last 角色角色“鱼鱼”的代码的代码 作用是将小鱼移到地图右上角的方格,即第作用是将小鱼移到地图右上角的方格,即第10行,第行,第14列的方格,方格的编号从列的方格,方格的编号从0开始,即行开始,即行为为0-9,列为,列为0-1315home back first prev next last 路径搜索算法路径搜索算法 变量变量 cat_x,cat_y 用于记录小猫当前所在方格用于记录小猫当前所在方格的位置,的位置,cat_x表示所在列(表示所在列(0-13),),cat_y表示表示所在行(所在行(0-9) LastStep 表示小猫上一步所在的方格,用方格表示小猫上一步所在的方格,用方格在在map列表中的索引表示列表中的索引表示 NextStep是一临时变量,表示小猫下一步可能进是一临时变量,表示小猫下一步可能进入的方格,用方格在入的方格,用方格在map列表中的索引表示列表中的索引表示 Direction 代表小猫的前进方向,代表小猫的前进方向,1-上,上,2-下,下,3-左,左,4-右右16home back first prev next last 路径搜索算法路径搜索算法 链表链表 map 表示地图表示地图 链表链表 pass用于记录小猫探索过的方格,其结构用于记录小猫探索过的方格,其结构和和map相同,大小被初始化为相同,大小被初始化为140,每个元素对,每个元素对应地图上的一个方格应地图上的一个方格曾经走过的方格对应元素设为曾经走过的方格对应元素设为1,一次也没有走过的,一次也没有走过的方格对应元素设为方格对应元素设为0 Path代表小猫从起点(左下角方格)为了达到代表小猫从起点(左下角方格)为了达到终点(鱼所在右上角方格)探索走过的路径,终点(鱼所在右上角方格)探索走过的路径,其大小动态变化,小猫每走一步,经过的方格其大小动态变化,小猫每走一步,经过的方格位置就被插入链表位置就被插入链表Path的头部(第一个元素)的头部(第一个元素)17home back first prev next last 路径搜索算法路径搜索算法 1. 根据小猫当前位置,假设一个前进方向,比如向上,根据小猫当前位置,假设一个前进方向,比如向上,计算计算NextStep 2. 判断判断NextStep进入方格如果没有超越边界,且从未探进入方格如果没有超越边界,且从未探索过,且不是来时刚走过的方格,则此假设方向可行,索过,且不是来时刚走过的方格,则此假设方向可行,小猫进入小猫进入NextStep所对应方格,将所对应方格,将pass中中NextStep对应元对应元素设置为素设置为1,标志此方格已经走过,将,标志此方格已经走过,将NextStep添加到添加到Path头部,路径向前延伸头部,路径向前延伸 3. 如果上述条件不成立,则判断下一个方向如果上述条件不成立,则判断下一个方向 4. 如果所有方向都不可行,说明此路不通。从如果所有方向都不可行,说明此路不通。从Path中取中取出上一步走过的方格,回退到此方格,返回到步骤出上一步走过的方格,回退到此方格,返回到步骤(1)。如果如果Path中已经为空,说明已经探索过所有可能达到的中已经为空,说明已经探索过所有可能达到的方格,仍然无法到达终点。探索过程结束,说方格,仍然无法到达终点。探索过程结束,说“无路可无路可走,游戏结束!走,游戏结束!”18home back first prev next last19543212687101113Path:19home back first prev next last 具体程序实现时,先决定前进的方向,然后再前具体程序实现时,先决定前进的方向,然后再前进,探索初始化及判断向上一步是否可行的代码进,探索初始化及判断向上一步是否可行的代码如右如右20home back first prev next last 其他方向的判断,同向上的判断方式相同,下面其他方向的判断,同向上的判断方式相同,下面是所有方向都走不通后的处理代码是所有方向都走不通后的处理代码21home back first prev next last 根据前面决定的方向,前进一步的代码如下根据前面决定的方向,前进一步的代码如下22home back first prev next last 编写坦克大战游戏编写坦克大战游戏 链表实现数字地图,用链表实现数字地图,用0代表通道,代表通道,1代表砖墙,代表砖墙,2代表草地,代表草地,3代表石墙等等代表石墙等等 自己绘制或上网查找坦克、砖墙、草地、石墙自己绘制或上网查找坦克、砖墙、草地、石墙等图片,统一大小,作为构造地图的素材等图片,统一大小,作为构造地图的素材 可开发两个程序,一个是地图编辑器,专门用可开发两个程序,一个是地图编辑器,专门用作编辑地图使用;另一个是游戏程序,实现人作编辑地图使用;另一个是游戏程序,实现人机对战机对战 人控制坦克,保卫自己的基地,电脑进攻,消人控制坦克,保卫自己的基地,电脑进攻,消灭所有电脑坦克,基地不被损毁则可过关灭所有电脑坦克,基地不被损毁则可过关23home back first prev next last 这节课我们学习了这节课我们学习了 迷宫的绘制迷宫的绘制 数字地图的使用数字地图的使用 路径的自动搜索路径的自动搜索
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!