辽宁省沈阳市第十五中学2013年高中数学论文 图形计算器应用能
力测试活动学生 图形计算器游戏贪吃蛇
[摘要]
利用图形计算器的编程功能,在CASIO fx-CG20图形计算器平台上实现了贪吃蛇游戏。本文中的程序利用了图形计算器中的矩阵来储存数据,通过模拟法实现贪吃蛇游戏,有两种游戏模式,并提供游戏的最高分记录、保存和设置功能。 [关键词]
图形计算器;贪吃蛇; [前言]
观察过以前的获奖论文,大多数的论文只利用到图形计算器的画图功能和小部分的编程功能。图形计算器编程功能的强大之处并未充分体现出来,而本文正是利用了图形计算器强大的编程功能,从而在图形计算器上实现了贪吃蛇游戏。 [研究目的]
利用图形计算器的编程功能,在图形计算器上实现贪吃蛇游戏,从而锻炼编程能力和算法能力,同时增强了CASIO图形计算器的娱乐功能,丰富同学们的课余生活。 [程序功能说明]
游戏功能:玩家通过CASIO图形计算器fx-CG20上的按键B、N、!和$或数学键2、4、6和8控制蛇在地图上寻找食物,每吃下一个食物时,蛇的长度增加一,同时出现另一个食物。本程序有两种游戏模式,一种为有墙模式,另一种为无墙模式。
有墙模式下,蛇头碰到四面的墙(即显示的边界)或蛇身时,游戏结束。 无墙模式下,只有在蛇头碰到蛇身的情况下游戏才会结束,如果蛇头到达了屏幕的边界,蛇头会在屏幕的另一边出现。(如图1)
图 错误!不能识别的开关参数。
图 错误!不能识别的开关参数。
最高分记录功能:本程序能记录蛇长度的最长纪录,并在游戏结束的时候显示纪录长度和此次游戏的蛇的长度。(如图2)
保存功能:玩家可以在游戏中途按p键可暂停游戏,玩家可以选择“Save g
ame&Exit”(保存并退出游戏),或者“Continue”(继续游戏)。(如图3)下次运行程序时,选择“Load”即可继续上次保存的游戏。(如图4)
图 错误!不能识别的开关参数。
图 4
设置功能:运行程序并选择“Set”(如图4)可进入本程序的设置界面,玩家可以改变蛇头(Head)或蛇身(Body)的图案、改变蛇身颜色(Color)、切换游戏模式(Wall)或者返回主菜单(Exit)。(如图5)
图 错误!不能识别的开关参数。 特色:
图 6
1.本程序提供的所有蛇头和蛇身图案都是由具有方向性的图案组成的。游戏过程中,蛇头始终指向前进方向,蛇身始终沿蛇身指向蛇头方向。(如图6)
2.本程序共提供 8种蛇身颜色设置,其中玩家可以将蛇身颜色设置为“Colorful”(彩色),设置后游戏过程中的蛇身颜色将由伪随机数决定,呈现出“彩蛇”的效果。 (如图6) [研究过程]
1. 确定程序功能,请参考“程序功能说明”。 2. 构思算法:
本程序采用的主要算法为模拟法,程序运行时利用矩阵功能储存地图,使用“Locate”命令显示蛇头和蛇身。
需要记录的数据:蛇头坐标、蛇尾坐标、蛇头前进方向、蛇尾前进方向、食物坐标、蛇身长度、设置数据(颜色、游戏模式及图案设置数据)、地图
地图记录方法:用一个21×8的矩阵保存地图,一个矩阵元素对应屏幕上的一个方格。如果方格为“空”,则用对应的矩阵元素用“0”表示;如果方格上有蛇身,蛇身没有拐弯的地方,用“2”表示,拐弯的地方,用“-1”或“1”表示(具体取决于拐弯的方向)。
游戏保存的实现:将“需要记录的数据”用另一个矩阵保存下来即可。
按键检测方法:使用“Getkey”命令获取按键后,因为该命令返回的数值最大为79且一定为正整数,所以创建一个79×3的矩阵Mat H来判断按键。通过读取Mat H[K,3](K为“Getkey”命令的返回值)即可立即判断按键是否有效。若按键有效,则可以非常方便地利用矩阵储存的数据来修改蛇头方向和图案,缩短了代码长度。 蛇的实现:蛇前进时,用蛇身图案覆盖蛇头,在蛇头前进方向前一格的位置显示蛇头图案,同时用空格覆盖蛇尾。这样蛇就“前进”了一格。如果蛇头覆盖了食物(即吃下食物),不用空格覆盖蛇尾,则在游戏中显示的蛇会变长一格。 3. 使用图形计算器编程实现。 4. 进行程序调试。 5. 游戏试用。
具体实现步骤如下:
1. 打开图形计算器,按1进入“计算·矩阵”模式。 2. 按e进入矩阵存储器。并创建矩阵: 矩阵名 尺寸 Mat A 21×8 用途 程序运行时记录地图信息 Mat F 21×8 Mat B Mat H 6×1 79×3 保存游戏存档信息 记录最高分及游戏设置信息 用于按键判断 将Mat B的(3,1)、(5,1)和(6,1)初始化为1,其余矩阵元素为0。 Mat H的初始化:
第27行为1,0,2;第28行为0,-1,1 第37行为0,1,3;第38行为-1,0,4 第53行为1,0,2;第62行为0,1,3 第64行为0,-1,1;第73行为-1,0,4 其余矩阵元素为0。
3. 返回主菜单,进入“程序”模式。
4. 创建程序“SNAKE”,代码请参考“程序代码分析”或附件。
自-辽宁省沈阳市第十五中学2013年高中数学论文 图形计算器应用能力测试活动学生 图形计算器游戏贪吃
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)