图形计算器应用能力测试活动学生图形计算器游戏扫雷.docVIP

图形计算器应用能力测试活动学生图形计算器游戏扫雷.doc

  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多
辽宁省沈阳市第十五中学2013年高中数学论文 图形计算器应用能力测试活动学生 图形计算器游戏扫雷 利用图形计算器的编程功能,在CASIO fx-CG20图形计算器平台上实现了扫雷游戏。本文中的程序利用了图形计算器中的矩阵来储存数据,通过模拟法和广度搜索算法实现扫雷游戏,游戏中提供了自动挖开和自动标志功能,并能中途保存游戏。 [关键词] 图形计算器;扫雷; [前言] 观察过以前的获奖论文,大多数的论文只利用到图形计算器的画图功能和小部分的编程功能。图形计算器编程功能的强大之处并未充分体现出来,而本文正是利用了图形计算器强大的编程功能,从而在图形计算器上实现了扫雷游戏。 [研究目的] 利用图形计算器的编程功能,在图形计算器上实现扫雷游戏,从而锻炼编程能力和算法能力,加深对广度优先搜索算法的理解,同时增强了CASIO图形计算器的娱乐功能,丰富同学们的课余生活。 [程序功能说明] 游戏功能:玩家通过数字键1、3、7、9、2、4、6和8或B、N、!和$移动光标选择方格,按u、5或l可以挖开当前选定的方格。如果挖到地雷则游戏结束并显示所有地雷的位置和标记错误的地方;如果当前方格挖开后显示一个数字n表示这个方格周围8个方块里总共有n个地雷;如果当前方格和周围8个方块里都没有地雷,则会自动挖开一片没有地雷的区域。按y或m标记当前方格,在有标记的方格再按一次y或m,则取消标记。(如图1) 图 1 自动挖开和自动标记功能:如果玩家选择了一个已挖开的显示数字的方格,并按下按键u、5或l,则程序会自动判断周围8个方格的情况,从而进行自动标记或自动挖开周围的方格。 游戏保存功能:游戏中途按p可暂停游戏,选择“Exit”可退出并保存游戏。(如图2)下次运行程序时,程序会自动读取存档。(如图3) 图 2暂停游戏菜单 图 3游戏存档读取中 特色: 游戏运行时,左上角会显示未标记的地雷个数。(如图1) 随机生成地图的游戏模式下,开始游戏时光标所在的方格一定没有地雷。如果总地雷数在范围内,则光标周围八个方格也没有地雷。这个设计是为了降低游戏难度。 程序根据方格上的数字的大小用不同的颜色显示。(如图4) 图 4 [研究过程] 确定程序功能,请参考“游戏功能说明”。 构思算法: 本程序在游戏实现方面使用模拟法,挖开方格时用非递归的广度搜索算法实现。使用一个矩阵保存游戏时的地图,一个矩阵元素对应地图上的一个方格。 需要记录的数据:光标位置、地图信息、未标记的地雷数、未挖开且无标记的方格数 矩阵记录地图信息的方法:矩阵元素上的数字表示地图对应方格的当前状态:用负数表示此方格还没有被标记或被挖开;零表示表示地图的边界,对应地图上不显示的地方;正数表示此方格已经被挖开或被标记。矩阵元素数字表示的具体含义请见下表: 数字 含义 正整数 被标记的方格 已被挖开的周围没有地雷的方格 已被挖开的周围有1至8个地雷的方格 零 地图边界 负整数 未被挖开的周围有1至8个地雷的方格 未被挖开的周围没有地雷的方格 有地雷的方格 游戏保存实现:将“需要记录的数据”用另一个矩阵记录起来。 按键检测方法:使用“Getkey”命令获取按键后,因为该命令返回的数值最大为79且一定为非负整数,所以创建一个79×3的矩阵Mat H来判断按键。通过读取Mat H[K,3](K为“Getkey”命令的返回值)即可立即判断按键是否有效。若按键有效,则可以非常方便地利用矩阵的数据移动光标。 挖开方格的实现(广度优先搜索的实现):当玩家挖开的方格周围八个方格都没有地雷,程序将自动挖开这个八个方格,也就是说对这八个方格的处理和对玩家挖开的方格的处理是一样的。具体实现时,用一个队列储存待挖开的方格,先将光标所在的方格加入队首。如果队列不为空,从队尾中取出一个方格,判断该方格周围八个方格是否有地雷。如果没有,则这八个方格加入到队首,对应方格显示一个空格;否则,只显示该方格上的数字。用深度优先搜索算法也可以实现方格的挖开,但考虑到广度优先搜索的动态显示效果比深度优先搜索的好,所以选择了广度优先搜索算法。 自动挖开和自动标记的实现:统计光标周围八个方格中的标记数和未挖开的方格数。存在未挖开方格的前提下,如果标记数等于光标所在方格上的数字,则将未挖开的方格加入到队首(即挖开这些方格);如果标记数加上未挖开的方格等于方格上的数字,则在未挖开的方格上添加标记。 使用图形计算器编程实现。 进行程序调试。 游戏试用。 具体实现步骤如下: 打开图形计算器,按1进入“计算·矩阵”模式。 按e进入矩阵存储器。并创建矩阵: 矩阵名 尺寸 用途 Mat A 23×9 程序运行时保存地图信息 Mat C 8×2 八个方向的相对偏移量 Mat D 23×9 游戏存档存放位置 Mat E

文档评论(0)

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

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

1亿VIP精品文档

相关文档