好文档 - 专业文书写作范文服务资料分享网站

自-辽宁省沈阳市第十五中学2013年高中数学论文 图形计算器应用能力测试活动学生 图形计算器游戏推箱

天下 分享 时间: 加入收藏 我要投稿 点赞

辽宁省沈阳市第十五中学2013年高中数学论文 图形计算器应用能

力测试活动学生 图形计算器游戏推箱子

[摘要]

利用图形计算器的编程功能,在CASIO fx-CG20图形计算器平台上实现了推箱子游戏。本文中的程序利用了图形计算器中的矩阵来储存数据,通过模拟法实现推箱子游戏,提供撤消和恢复操作以及游戏的保存,实现了推箱子的地图编辑,并利用原创的压缩算法压缩储存推箱子游戏地图。 [关键词]

图形计算器;推箱子; [前言]

观察过以前的获奖论文,大多数的论文只利用到图形计算器的画图功能和小部分的编程功能。图形计算器编程功能的强大之处并未充分体现出来,而本文正是利用了图形计算器强大的编程功能,并使用了原创的压缩算法,从而在图形计算器上实现了推箱子游戏和推箱子游戏地图的压缩保存。 [研究目的]

利用图形计算器的编程功能,在图形计算器上实现推箱子游戏,从而锻炼编程能力和算法能力,加深对进制转换的理解,同时增强了CASIO图形计算器的娱乐功能,丰富同学们的课余生活。 [程序功能说明]

游戏功能:玩家可以通过CASIO图形计算器fx-CG20上的按键B、N、!和$或数学键2、4、6和8控制搬运工(显示为一个手指图案)上下左右移动,将箱子(蓝色方框)推到指定地点。(如图1)

图 错误!不能识别的开关参数。游戏截图

图 错误!未定义书签。编辑地图中

地图编辑功能:玩家可以将原创的或搜集到的推箱子游戏地图输入到图形计算器中并储存起来。(如图2)程序提供粘滞功能,按下L键后移动的光标即可拖动出多个与当前位置相同的图案(包括空白)。本程序用一个包含1000个矩阵元素的矩阵储存地图,经过压缩后,储存上限大约为200幅地图。

游戏保存功能:玩家可以在游戏途中将游戏保存起来。按u或l打开游戏菜单(如图3),选择“Save & Exit”即可保存并退出游戏,下次运行程序时,程序将自动读取游戏存档。(如图4)

图 错误!不能识别的开关参数。

图 错误!不能识别的开关参数。游戏存档读

取中

撤消和恢复功能:本程序能记录所有箱子发生的移动,玩家按d键即可撤消上一次的箱子移动。如果想恢复刚才的操作可以按p键,可以通过多次按p键将地图状态恢复到撤消前的状态。

特色: 1.

由于图形计算器的主储存空间有限(61KB),所以如果直接将地图的全部信息储存进矩阵的话,储存上限会非常小。本程序使用原创的压缩算法压缩地图之后,仅用4~7个矩阵元素就能储存一幅地图。这是整个程序最复杂的部分。 提供快捷键7和9,玩家可以立即跳到上一幅图或下一幅图。提供快捷键w和y,玩家可以读取其他地图和重新载入当前地图。 搬运工所指向的方向会根据搬运工移动而改变。

2.

3.

[研究过程]

1. 确定程序功能,请参考“程序功能说明”。 2. 构思算法:

本程序游戏功能实现方面使用模拟法。屏幕上的一格对应矩阵中的一个元素。在矩阵中,不同的数字有不同的含义,请见下表:

数字 0 1 2 3 在目标位置上的箱子 4 墙 含义 空 箱子 目标位置 需要记录的数据:搬运工的坐标、未完成的目标位置个数(即上面没有箱子的目标位置个数)、当前地图编号

地图保存的实现:

需要压缩储存的原因:屏幕显示的方格为21×7,共147个方格,而每个矩阵(默认为只储存实数)储存所占用的空间大小为36 B+矩阵元素个数×12 B(字节),即每个矩阵元素占用12 B的空间。如果采用直接储存的方法,一幅地图所用的空间为:B。而CASIO fx-CG20图形计算器的主内存大小为61 KB,约为61000 B,所以忽略其他数据储存,采用直接储存地图的方法最多只能储存幅地图,亦即实际上只能储存不足30幅地图。

压缩思想一:忽略空白区域。考虑到所有地图都是一个封闭的不规则图形(即地图最外侧一定被墙包围),地图外围都是空白的区域,所以用一个最小的矩形覆盖地图,只记录下矩形的信息和矩形中的所有方格的信息即可。

压缩思想二:一个矩阵元素储存多个方格信息。由于一个方格的种类只有五种,把每一个方格视为一位的五进制数,将多个方格所对应的五进制数连成一个长五进制数,并转换为十进制数储存在矩阵当中。因此,一个矩阵元素可以储存多个方格的数据。CASIO fx-CG20图形计算器中的十进制数能保存十位有效数字,如果多于十位有效数字,多余的有效数字会被去掉。所以用于记录地图数据的数字不能超过。5的整

数次幂中,51为满足此要求的最大的数,所以矩阵元素最多可以储存一个14位的五进制数,即一个矩阵可以储存14个方格的信息。而,所以最多只需11个矩阵元素就储存一幅地图。

储存格式:为了不浪费每个矩阵元素,需要将储存数据连续储存在一个矩阵。由于不同大小的地图所占的元素个数不同,所以需要记录储存数据的起始位置,也就是数据的地址。同时又需要记录上面提到的矩形的信息和搬运工的起始位置。为了节约空间,所以将信息整合起来储存到一个矩阵元素当中,并将这些数据储存到一个矩阵当中,下文称之为“地图索引”数据。

地图索引信息整合方法:根据模运算的基本理论,对于任意一个整数n,一定存在等式,其中,且。由模运算的定义可知。因为如果给定p的话,n的分解是唯一的。令r为将要整合的信息,p为r的可能的状态总数,k则为之前其他信息整合得出的结果。P和Q为矩形纵坐标范围,U和V为矩形横坐标范围,X和Y为搬运工的起始位置的坐标,A和B为数据地址。其中。只考虑P、Q、U、V、X、Y,这六个信息共有种状态,,也就是说数据地址的状态数可以达到3148种,超出这个范围之后,数据的地址就无法记录了。最后可以得出这样一个计算公式:

地图读取和保存实现细节:由于储存和读取时,读取矩阵和编(解)码的方向都是相反的。本程序保存地图时,从右往左,从下往上编码地图,将五进制转换为十进制,写入到矩阵时,由前往后写入,并记录完成编码时A和B的值,即最后一个地图数据的位置。读取地图时,解码出A和B的值,从矩阵中(A,B)开始往前读取地图数据,而地图显示时,玩家就可以看到地图是从左往右,从上往下地显示的,这也是地图数据的解码方向。

游戏保存实现:储存方式与地图保存类似,不同在于地图信息和地图索引储存在一个固定的地方,还要记录存档的关卡数。

游戏的撤消和恢复功能实现:用一个矩阵储存被推动的箱子的坐标和按下的按键(可以从中获取箱子推动的方向)。 3. 使用图形计算器编程实现。 4. 进行程序调试。 5. 游戏试用。

具体实现步骤如下:

1. 打开图形计算器,按1进入“计算·矩阵”模式。 2. 按e进入矩阵存储器。并创建矩阵: 矩阵名 尺寸 用途

自-辽宁省沈阳市第十五中学2013年高中数学论文 图形计算器应用能力测试活动学生 图形计算器游戏推箱

辽宁省沈阳市第十五中学2013年高中数学论文图形计算器应用能力测试活动学生图形计算器游戏推箱子[摘要]利用图形计算器的编程功能,在CASIOfx-CG20图形计算器平台上实现了推箱子游戏。本文中的程序利用了图形计算器中的矩阵来储存数据,通过模拟法实现推箱子游戏,提供撤消和恢复操作以及游戏的保存,实现了推箱子的地图编辑,并利用原创的压缩算法
推荐度:
点击下载文档文档为doc格式
6uwkb09a4v7yqpo85se79mzf00wron00iv4
领取福利

微信扫码领取福利

微信扫码分享