探究性课程报告——TI84plus实现贪吃蛇的算法
- 格式:doc
- 大小:83.00 KB
- 文档页数:9
原创C语言贪吃蛇课程设计报告1. 引言贪吃蛇游戏是一款经典的电子游戏,它可以帮助玩家提高反应能力和思维敏捷性。
本文档旨在介绍一个基于C语言的贪吃蛇课程设计项目。
通过这个项目,我们可以学习C语言的基本语法、算法和程序设计方法。
2. 项目概述2.1 项目背景贪吃蛇游戏是一款非常受欢迎的经典游戏,现在几乎在所有平台都有相应的版本。
它的原理很简单:玩家控制一条蛇在屏幕上移动,蛇吃掉食物后身体长度增加,游戏结束条件为蛇撞到屏幕边缘或自己的身体。
通过这个项目的设计与实现,我们可以提高自己的编程能力,并加深对C语言的理解。
2.2 项目目标本项目的目标是设计并实现一个具有基本功能的贪吃蛇游戏。
主要功能包括:•蛇的移动控制:玩家可以通过键盘控制蛇的移动方向。
•食物的生成:在屏幕上随机生成食物,蛇吃掉食物后身体长度增加。
•碰撞检测:判断蛇是否撞到屏幕边缘或自己的身体,游戏在此情况下结束。
•分数统计:记录玩家的得分,并在游戏结束时显示最终得分。
3. 设计思路3.1 游戏界面设计游戏界面需要在控制台中实现,使用C语言的标准输入输出函数可以很方便地实现界面的绘制和更新。
我们可以使用二维数组来表示屏幕,每个元素代表一个方格,蛇和食物在屏幕上的位置可以通过修改二维数组的值来实现。
3.2 蛇的移动控制蛇的移动控制是游戏的核心功能之一。
我们可以使用一个链表数据结构来表示蛇的身体,每个节点代表一个蛇的身体节。
通过不断更新链表节点的位置,实现蛇的移动。
玩家可以通过键盘输入来控制蛇的移动方向。
3.3 食物的生成食物的生成是游戏的另一个重要功能。
我们可以随机生成一个二维数组的坐标,在该坐标上放置食物。
在蛇吃掉食物后,就可以在链表的末尾添加一个新的节点,使蛇的长度增加。
3.4 碰撞检测碰撞检测是判断蛇是否与屏幕边缘或自身的身体相撞的过程。
我们需要判断蛇的头节点是否与屏幕边缘或其他身体节点的位置重叠,如果重叠则游戏结束。
3.5 分数统计分数统计是记录玩家得分的功能。
一、实验目的1. 掌握Python编程语言的基本语法和面向对象编程思想;2. 理解并实现贪吃蛇游戏的基本算法和流程;3. 学会使用Pygame库进行图形界面设计;4. 提高编程实践能力和团队协作能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm4. 图形库:Pygame三、实验内容1. 游戏界面设计2. 游戏逻辑实现3. 游戏控制实现4. 游戏测试与优化四、实验步骤1. 游戏界面设计(1)初始化Pygame库```pythonimport pygame```(2)设置游戏窗口```pythonscreen = pygame.display.set_mode((640, 480))pygame.display.set_caption("贪吃蛇游戏")```(3)设置游戏背景颜色```pythonscreen.fill((0, 0, 0))```2. 游戏逻辑实现(1)定义蛇类```pythonclass Snake:def __init__(self, x, y, width, height, color):self.x = xself.y = yself.width = widthself.height = heightself.color = colorself.x_change = 0self.y_change = 0def draw(self, surface):pygame.draw.rect(surface, self.color, (self.x, self.y, self.width, self.height))```(2)定义食物类```pythonclass Food:def __init__(self, x, y, width, height, color):self.x = xself.y = yself.width = widthself.height = heightself.color = colordef draw(self, surface):pygame.draw.rect(surface, self.color, (self.x, self.y, self.width, self.height))```(3)定义游戏主函数```pythondef game():clock = pygame.time.Clock()snake = Snake(50, 50, 10, 10, (0, 255, 0))food = Food(300, 300, 10, 10, (255, 0, 0))game_over = Falsewhile not game_over:for event in pygame.event.get():if event.type == pygame.QUIT:game_over = Trueelif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:snake.x_change = -10snake.y_change = 0elif event.key == pygame.K_RIGHT:snake.x_change = 10snake.y_change = 0elif event.key == pygame.K_UP:snake.x_change = 0snake.y_change = -10elif event.key == pygame.K_DOWN:snake.x_change = 0snake.y_change = 10snake.x += snake.x_changesnake.y += snake.y_changescreen.fill((0, 0, 0))snake.draw(screen)food.draw(screen)pygame.display.flip()clock.tick(15)pygame.quit()```3. 游戏控制实现在游戏主函数中,通过监听键盘事件来控制蛇的移动方向。
贪吃蛇实训报告模板1. 概述本报告旨在总结本次贪吃蛇实训的学习内容、实践经验,以及对于贪吃蛇游戏开发的理解和思考,为未来的实践学习提供参考和借鉴。
2. 前置知识在进行贪吃蛇实训前,推荐学生应具备以下基本前置知识:•编程语言基础:如C++、Java等。
•数据结构:如数组、链表、队列、栈等。
•基本算法:如排序算法、查找算法等。
3. 学习内容在本次贪吃蛇实训中,我们主要学习了以下内容:1.实现基本的贪吃蛇游戏逻辑:包括贪吃蛇的移动、食物的生成、得分统计等。
2.优化游戏体验:包括界面美化、音效、计时器等。
3.处理游戏特殊情况:如蛇碰到墙壁、自身等。
我们在实践中还遇到了以下问题:1.蛇的移动:如何保证蛇能够顺利移动并避免出现卡顿现象。
2.食物的生成:如何让食物能够随机生成且不与蛇重合。
3.得分统计:如何实现得分统计功能并将得分存入文件中。
通过解决这些问题,我们不仅实现了基本的贪吃蛇游戏功能,还使游戏更加智能化、丰富化。
4. 实践经验在进行贪吃蛇实践时,我们总结了以下实践经验:1.良好的代码规范:良好的代码规范对于功能实现和代码可读性的提高有着至关重要的意义。
比如,可以采用模块化编程,减少重复代码等。
2.良好的注释习惯:良好的注释习惯能够帮助程序员快速理解代码逻辑、减少代码修改和维护的困难度。
3.利用GitHub等代码分享平台:通过GitHub等代码分享平台,开源自己的代码,不仅可以让更多的人看到自己的成果,也可以接受更多人的意见和建议。
5. 游戏开发的思考在学习贪吃蛇游戏的过程中,我们不仅仅实现了一个简单的游戏,也思考了游戏开发的一些问题。
比如,游戏中的难度控制、人机交互等问题。
在游戏开发中,除了对于程序语言掌握以外,掌握这些问题也是非常必要的。
6. 总结本次贪吃蛇实训,我们不仅仅实现了贪吃蛇的基本功能,也通过实践和学习,提高了自己的编程水平和思考能力。
希望通过这次实践,能够启迪我们更好的编程思维和创造力,为未来的学习和工作打下坚实的基础。
计算机实习报告:班级: 07班学号小班序号:11题目:贪吃蛇邮箱:小游戏“贪吃蛇”实验报告一.功能说明1.1总体功能说明贪吃蛇的小游戏,控制蛇来吃苹果;随着吃掉的苹果个数的增加分数会增加,但蛇身也会变长;如果蛇撞到墙壁或者自己的话就会死掉结束游戏。
1.2用户界面选择游戏等级,等级越高速度越快;游戏界面;死后选择是否继续游戏;1.3使用方法进入先选择游戏等级,1-9个等级对应的速度依次增大并且获得的分也依次增大。
通过上下左右控制蛇的运动方向,可选择1-9共9个等级,蛇会有不同的速度和分数递加。
死亡后按Y或N来继续或结束游戏二.程序设计说明2.1 总体设计框架2.2 关键算法描述1.蛇的运动算法:将蛇的前一节坐标赋给后一节,最后一节消去前一节。
textout(handle,x[lenth-1],y[lenth-1],wColors,1," ");for(int n=lenth-1;n>0;n--){x[n]=x[n-1];y[n]=y[n-1];}y[0]++;textout(handle,x[1],y[1],wColors,1,"●");textout(handle,x[0],y[0],wColors,1,"◆");2.蛇的死亡算法:即蛇头不与任何一个蛇身坐标相重合int right=0;for(int i=1;i<lenth;i++) //判断是否死掉right=(right||(x[i]==x[0]&&y[i]==y[0])); //若蛇头与任意一节不重合则right值为0;3.蛇头坐标不与边框重合即撞墙的判断。
4转弯算法:Int ch;ch=_getch();switch(ch){case 72:case 80:case 75:case 77:default:;2.3 程序设计的难点和关键点1.蛇的运动算法2.蛇不能反向运动3.音乐和音效的插入2.4 调试的方法1.采用坐标赋值运算,将前一个坐标的值赋给后一个,实现传递textout(handle,x[lenth-1],y[lenth-1],wColors,1," ");for(int n=lenth-1;n>0;n--){x[n]=x[n-1];y[n]=y[n-1];}y[0]++;textout(handle,x[1],y[1],wColors,1,"●");textout(handle,x[0],y[0],wColors,1,"◆");2.加入俩次判断:每次用一个临时变量来记录之前的按键再用SWITCH语句来判断是否方向相反。
第1篇一、项目背景随着计算机技术的发展和普及,编程教育越来越受到重视。
为了提高学生的编程能力和逻辑思维,许多高校和培训机构都开设了编程实践课程。
贪吃蛇游戏作为经典的编程学习项目,因其简单易懂、趣味性强而广受欢迎。
本报告旨在记录一次基于Python语言的贪吃蛇游戏软件实践过程,分析项目实现中的关键技术,并总结实践经验。
二、项目目标1. 掌握Python编程基础,熟悉Python图形界面库Tkinter的使用。
2. 理解贪吃蛇游戏的基本原理,包括游戏逻辑、数据结构、事件处理等。
3. 培养编程实践能力,提高问题解决能力。
4. 实现一个功能完善、界面友好的贪吃蛇游戏软件。
三、项目实施1. 需求分析贪吃蛇游戏的核心功能包括:- 游戏界面:显示蛇的移动轨迹、食物、分数等信息。
- 蛇的移动:通过键盘或鼠标控制蛇的上下左右移动。
- 食物生成:在游戏区域内随机生成食物。
- 分数统计:记录玩家得分,并在游戏结束后显示最高分。
- 游戏结束:当蛇碰到墙壁或自身时,游戏结束。
2. 技术选型- 编程语言:Python- 图形界面库:Tkinter- 数据结构:列表(用于存储蛇的身体节点)3. 项目实现(1)初始化游戏界面使用Tkinter库创建游戏窗口,设置窗口大小和标题。
在窗口内创建一个画布(Canvas),用于绘制蛇、食物和分数等信息。
```pythonimport tkinter as tk创建游戏窗口root = ()root.title("贪吃蛇游戏")canvas = tk.Canvas(root, width=400, height=400)canvas.pack()```(2)绘制蛇和食物定义蛇和食物的形状、颜色等属性,使用画布的create_rectangle()方法绘制。
```pythondef draw_snake(snake):for x, y in snake:canvas.create_rectangle(x, y, x+10, y+10, fill="green")def draw_food(food):canvas.create_oval(food[0], food[1], food[2], food[3], fill="red")```(3)控制蛇的移动使用键盘事件绑定函数bind(),监听键盘按键事件,根据按键方向更新蛇的移动方向。
C 语言课程设计(小游戏贪吃蛇得程序设计报告)设计人:班级:201年月号目录一:概述1:研究背景及意义2:设计得任务与需要知识点3:具体完成设计内容二:需求分析1:功能需求2:操作方法三:总体设计1:模块划分2:数据结构设计四:详细设计1:主空摸块设计2:绘制游戏界面3:游戏得具体过程4:游戏得结束处理5:显示排行榜信息模块五:程序得调试与测试1:动画与音乐同步2:蛇得运行3:终止程序六:结论七::结束语八:程序清单九:参考文献一. 概述本课程设计以软件工程方法为指导,采用了结构化,模块化得程序设计方法,以C语言技术为基础,使用TurboC++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统得实现与测试。
1、1 研究得背景及意义随着社会得发展,人们生活得节奏日益加快,越来越多得人加入了全球化得世界。
人们不再拘泥与一小块天地,加班,出差成了现代人不可避免得公务。
而此时一款可以随时随地娱乐得游戏成为了人们得需要。
此次课程设计完成得贪吃蛇小游戏,正就是为了满足上述需求而设计出来得。
贪吃蛇游戏虽小,却设计诸多得知识点。
通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程得与那个发,技术与工具开发软件得过程,进一步掌握结构化,模块化得程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构得使用方法,掌握图形,声音,随机数等多种库函数得使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程得学习与将来实际软件开发打下坚实得基础。
1、2设计得任务与需要得知识点1、2、1 课程设计主要完成得任务1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计得思想,培养解决实际问题得能力。
2)有同步播放动画,声音效果。
3)设计好数组元素与蛇,食物得对应关系。
辽宁科技大学课程设计说明书设计题目:基于C#的贪吃蛇游戏学院、系:装备制造学院专业班级:计算机科学与技术学生姓名:叶佳佳指导教师:丁宁成绩:2015年12月12日目录一、概述 (1)1、用C#实现该设计的方法 (1)2、贪吃蛇游戏说明 (1)二、实验目的及设计要求 (1)1、实验目的 (1)2、实验要求 (2)三、课程设计具体实现 (2)1、概要设计 (2)1.1、设计思想 (2)1.2、主模块实现 (2)1.3、主函数流程图 (4)2、详细设计 (5)2.1、设计思想 (5)2.2、具体模块实现: (5)四、调试过程及运行结果 (10)1、调试过程 (10)2、实验结果 (11)五、实验心得 (12)六、参考资料 (13)七、附录:源代码 (13)一、概述1、用C#实现该设计的方法首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。
设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。
模块设计完成后,就该给每个模块绘制流程图。
流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。
此外,流程图应容易转换成代码。
根据流程图编写好代码后在WindowsXP操作系统,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。
2、贪吃蛇游戏说明游戏操作要尽可能的简单,界面要尽可能的美观。
编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。
游戏结束时输出相应得分。
具体要求有以下几点:(1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;(2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面;(3)说明书、流程图要清楚;二、实验目的及设计要求1、实验目的.NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握;提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,做出设计报告。
C语言程序设计实训报告姓名专业班级指导教师二011 年 7 月 14 日目录1实训目的和要求 (1)1.1实训目的和任务 (1)1.2实训要求 (1)2实训任务内容 (1)2.1游戏规则 (1)2.2流程设计 (2)3软件使用说明 (3)3.1编辑程序主要软件 (3)3.2编辑程序辅助软件 (3)3.3程序使用过程 (3)3.3.1贪吃蛇进入 (3)3.3.2贪吃蛇的玩法 (4)3.3.3贪吃蛇的结束 (4)4实训心得和体会 (5)4.1实训的心得 (5)4.2实训的体会 (5)参考文献 (6)附录:部分程序清单 (7)1实训目的和要求1.1 实训目的和任务1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力1.2 实训要求1. 分析实训题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交实训报告2实训任务内容2.1 游戏规则通过一个学期对C语言程序设计的学习,经过实训,完善我们对C语言学习的漏洞和未学会的知识点,更加熟练的掌握C语言程序设计,锻炼我们独立自主设计程序编辑代码的能力,通过设计出来的程序,提高我们对C语言学习的兴趣,玩家通过键盘控制蛇在地图上寻找食物,蛇吃蛇食物,可以加分,碰到四壁游戏结束。
2.2流程设计贪吃蛇流程图如图1所示图1贪吃蛇流程图贪吃蛇运行说明图如图2所示图2贪吃蛇运行说明图3软件使用说明3.1 编辑程序主要软件对于这次实训,主要使用的软件是VC++6.0,在平日的学习中,我们也经常使用这种软件进行编程,已基本掌握此软件的用法,所以在此次实训中,我还是主要使用VC++6.03.2 编辑程序辅助软件辅助软件有turboc,因为在贪吃蛇程序代码设计阶段,VC++6.0需要自己人工绘图,还没有熟练掌握绘图功能时,我使用turboc 调用graphics中的函数避免了人工绘图的麻烦,利用turboc软件进行调试其他函数部分,待人工绘图结束后重新回归VC++6.0。
一、实训背景随着计算机技术的飞速发展,编程已经成为一项非常重要的技能。
为了提高自己的编程能力,我参加了贪吃蛇代码实训。
通过这次实训,我对贪吃蛇游戏的编程有了更深入的了解,同时也锻炼了自己的编程思维和动手能力。
二、实训目标1. 熟悉C语言的基本语法和编程规范。
2. 掌握贪吃蛇游戏的设计与实现。
3. 培养团队协作和沟通能力。
三、实训内容1. 游戏设计:确定游戏规则、界面设计、功能模块划分等。
2. 代码编写:使用C语言实现游戏逻辑、图形界面、用户交互等。
3. 调试与优化:找出并修复代码中的错误,提高游戏性能。
四、实训过程1. 游戏设计在游戏设计阶段,我们首先明确了游戏规则:玩家通过键盘控制蛇的移动,吃掉食物使蛇变长,同时避免撞到墙壁和自己的身体。
游戏界面设计简洁,以蓝色背景和白色蛇身为主,食物用红色表示。
2. 代码编写在代码编写过程中,我们采用了模块化设计,将游戏分为以下几个模块:(1)主函数:初始化游戏环境,创建窗口,设置定时器等。
(2)蛇的移动:根据键盘输入控制蛇的移动方向,更新蛇的位置。
(3)食物的生成:随机生成食物位置,并在蛇吃到食物时更新食物位置。
(4)游戏结束判断:判断蛇是否撞到墙壁或自己的身体,如果发生碰撞则游戏结束。
(5)图形界面:使用图形库绘制蛇、食物和游戏界面。
3. 调试与优化在调试过程中,我们遇到了许多问题,如蛇的移动方向相反、食物生成位置不合理等。
通过查阅资料和团队合作,我们逐一解决了这些问题。
在优化方面,我们主要关注了以下两点:(1)提高游戏性能:通过减少不必要的计算和绘制,提高游戏运行速度。
(2)优化用户体验:调整游戏难度,使游戏更具挑战性。
五、实训收获1. 编程能力得到提升:通过编写贪吃蛇游戏,我熟悉了C语言的基本语法和编程规范,提高了自己的编程能力。
2. 编程思维得到锻炼:在游戏设计过程中,我学会了如何分析问题、设计算法和实现代码。
3. 团队协作能力得到提高:在实训过程中,我与团队成员共同解决问题,学会了沟通和协作。
探究性课题学习报告
课题:TI84+实现贪吃蛇的算法
研究人:陈嘉南
一、实现效果
蛇身在初始化的时候只有两个单位的长度,每次吞噬一个“食物”,蛇身就会增长一个单位。
这个过程会循环往复下去,直到蛇吃到自己的身体或者是撞到“墙壁”或者蛇身等于20为止(期间按“ENTER”可以暂停)。
然后会在主屏幕上显示所得分数。
二、流程图
三、环境
编程环境
在TI84plus图形计算器(可移植至TI84plus银装版/TI83plus)中使用prgm运用catalog内的函数进行编程。
运行环境
TI83plus/TI84plus/TI84plus silver edtion;Xmin=-10;Xmax=10;Ymin=-10;Ymax=10
四、所需变量
Variables
全局变量
S:分数。
C:食物纵坐标。
D:食物横坐标。
G:判断蛇有没有吃到蛇身;若有则为1,反之则为0。
O:缺省按键,当没有按下方向键时取O中保存的方向。
N:getKey()得到的按键;24为左方向键;25为上方向键;26为右方向键;34为下方向键;105为“ENTER”键
临时变量
U:临时变量
V:临时变量
M:临时变量
P:临时变量
J:临时变量
Strings
“YOU HAVE EATEN ”
“PIECE(S) OF FOOD”
Lists
无
Matrixs
[H](2*20):用于储存蛇身在屏幕上的位置;第一行为纵坐标,第二行为对应横坐标。
Pics
Pic1:游戏界面。
(由于技术原因,无法在此展示。
)
五、代码部分
prgmSNAKE3X
:ClrDraw
:AxesOff
:ClrHome
:{2,20}->dim([H])
:Fill(0-1,[H])
:0->S
:0->C
:0->D
:0->G
:25->O
:10->[H](1,1)
:10->[H](2,1)
:11->[H](1,2)
:10->[H](2,2)
:
:While [H](1,1)>0 and [H](2,1)>0 and [H](1,1)<20 and [H](2,1)<20 and G≠1 and [H](1,20)=-1
:prgmCFOOD3X
:While ([H](1,1)≠C or [H](2,1)≠D)[H](1,1)>0 and [H](2,1)>0 and [H](1,1)<20 and [H](2,1)<20 and G≠1 and [H](1,20)=-1
:RecallPic 9
:prgmDMATRIXH
:prgmDFOOD3X
:prgmDIRET3X
:prgmSEI3X
:0->Q
:End
:S+1->S
:End
:S-1->S
:Disp “YOU HAVE EATEN ”,S, “PIECE(S) OF FOOD”
prgmCFOOD3X
:Lbl L1
:randInt(1,19)->C
:randInt(1,19)->D
:1->L
:While [H](1,L)≠0-1
:If [H](1,L)=C and [H](2,L)=D
:Then
:Goto L1
:End
:L+1->L
:End
prgmDFOOD3X
:Pxl-On(C*3,D*3)
:Pxl-On(C*3,D*3+1)
:Pxl-On(C*3,D*3+2)
:Pxl-On(C*3+1,D*3)
:Pxl-On(C*3+1,D*3+1)
:Pxl-On(C*3+1,D*3+2)
:Pxl-On(C*3+2,D*3)
:Pxl-On(C*3+2,D*3+1)
:Pxl-On(C*3+2,D*3+2) prgmDIRET3X
:getKey->N
:If N=24
:Then
:prgmMMATX3XH
:[H](2,1)-1->[H](2,1)
:N->O
:Else
:If N=25
:Then
:prgmMMATX3XH
:[H](1,1)-1->[H](1,1)
:N->O
:Else
:IF N=26
:Then
:prgmMMATX3XH
:[H](2,1)+1->[H](2,1)
:N->O
:Else
:If N=34
:Then
:prgmMMATX3XH
:[H](1,1)+1->[H](1,1)
:N->O
:Else
:prgmFDIRE3X
:End
:End
:End
:End
:prgmGROW3X prgmDMATRIXH
:1->U
:Pxl-On([H](1,U)*3,[H](2,U)*3) :Pxl-On([H](1,U)*3,[H](2,U)*3+1) :Pxl-On([H](1,U)*3,[H](2,U)*3+2)
:Pxl-On([H](1,U)*3+1,[H](2,U)*3) :Pxl-On([H](1,U)*3+1,[H](2,U)*3+1) :Pxl-On([H](1,U)*3+1,[H](2,U)*3+2) :Pxl-On([H](1,U)*3+2,[H](2,U)*3) :Pxl-On([H](1,U)*3+2,[H](2,U)*3+1) :Pxl-On([H](1,U)*3+2,[H](2,U)*3+2)
prgmFDIRE3X
:If O=24
:Then
:prgmMMATX3XH
:[H](2,1)-1->[H](2,1)
:Else
:If O=25
:Then
:prgmMMATX3XH
:[H](1,1)-1->[H](1,1)
:Else
:IF O=26
:Then
:prgmMMATX3XH
:[H](2,1)+1->[H](2,1)
:Else
:If O=34
:Then
:prgmMMATX3XH
:[H](1,1)+1->[H](1,1)
:End
:End
:End
:End
prgmGROW3X
:If C=[H](1,1) andD=[H](2,1)
:Then
:1->Q
:1->J
:While [H](1,J)≠0-1
:J+1->J
:End
:J+1->J
:While P>0
:[H](1,P)->[H](1,J)
:[H](2,P)->[H](2,J)
:P-1->P
:J-1->J
:End
:C->[H](1,1)
:D->[H](2,1)
:End
prgmMMATX3XH
:1->M
:While [H](1,M)≠0-1 and M<20
:M+1->M
:End
:M-1->M
:Pxl-Off([H](1,M)*3,[H](2,M)*3)
:Pxl-Off([H](1,M)*3,[H](2,M)*3)
:Pxl-Off([H](1,M)*3,[H](2,M)*3+1)
:Pxl-Off([H](1,M)*3,[H](2,M)*3+2)
:Pxl-Off([H](1,M)*3+1,[H](2,M)*3)
:Pxl-Off([H](1,M)*3+1,[H](2,M)*3+1)
:Pxl-Off([H](1,M)*3+1,[H](2,M)*3+2)
:Pxl-Off([H](1,M)*3+2,[H](2,M)*3)
:Pxl-Off([H](1,M)*3+2,[H](2,M)*3+1)
:Pxl-Off([H](1,M)*3+2,[H](2,M)*3+2)
:While M>1
:M-1->N
:[H](1,N)->[H](1,M)
:[H](2,N)->[H](2,M)
:M-1->M
:End
prgmSEI3X
:2->V
:While [H](1,V)≠0-14 and Q=0
:If [H](1,1)=[H](1,V) and [H](2,1)=[H](2,V) :Then
:End
:V+1->V
:End
六、后记
“编程不是靠脑子,是个体力活。
”在我编写完这段贪吃蛇的代码之后我深刻地理解了这句话的内涵。
因为在TI84+图形计算器上面编程没有什么“复制”、“粘贴”等键可以使用,只能够一个函数一个字符地敲出来,因此构思很快,但是输入却花了整个工程将近90%的时间。
但是最终还是编出来了,并且写成了这篇报告。
七、参考文献
《TI84plus/TI84plus silver edition用户使用说明书》。