单片机贪吃蛇课程设计报告模板

合集下载

基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文

基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文

基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文《电子线路综合》课程设计报告设计课题:贪吃蛇掌上游戏机毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

贪吃蛇游戏课程设计实验报告

贪吃蛇游戏课程设计实验报告

辽宁科技大学课程设计说明书设计题目:基于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技术的理解和掌握;提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,做出设计报告。

基于51单片机实现的贪吃蛇游戏机开题报告

基于51单片机实现的贪吃蛇游戏机开题报告
以51单片机开发板为核心,通过操控“上”、“下”、 “左”、“右”按键来操控LCD12864显示屏上的贪吃蛇 行进的方向,获取食物,每获得一个食物,贪吃蛇的长 度将增大,达到一定长度时会进行晋级,同时贪吃蛇运 动速度加快。一旦在贪吃蛇的运动过程中碰到屏幕边缘、 障碍物或是蛇身,贪吃蛇死亡,游戏结束。
• 硬
按键开关
方向按键
单片机 扬声器 LCD12864 LCD1602
• 成员分工
软件程序调试: PCB画图与制版: 焊接电路与调试:
• 时间规划(第一周)
谢谢观看
• 预期实现目标
我们希望能够在单片机设计的贪吃蛇的游戏机中设置游 戏等级,通过LCD1604来显示游戏的等级信息以及游戏 得分等信息,在用户进入欢迎界面后,可以进行自由选 择等级,比如:简单,中等,困难。同时,希望能够在 游戏的开始、暂停和结束环节增加一些背景音乐增加趣 味性。
• 初期产品基本效果图
• 设计意义
贪吃蛇是一款简单的益智游戏,我们可以以51单片机为 核心来设计一个简单的贪吃蛇游戏机,这只是单片机应 用的一个点,由点及面,希望可以更好的将理性与感性 相结合,深入了解和应用相关的专业技术,将之前理论 学习的知识运用到实际中,提高实践动手能力,为将来 科研道路打下坚实基础。
• 预期实现目标
电子工艺实习
基于51单片机实现的贪吃蛇游戏机 Greedy Snake Game Based on 51 MCU
• 设想
在课程设计期间,我们学习了以MPS430单片机为核心的 DC/DC降压器的设计,因而想要进一步了解单片机的使 用,而单片机的基础入门必备的就是51单片机,所以我 们就设想通过51单片机来实现一些有意思的功能。于是 我们就想到了用51单片机来实现小时候的益智游戏—— 贪吃蛇。

贪吃蛇的实训报告

贪吃蛇的实训报告

一、实训目的本次实训旨在通过设计并实现贪吃蛇游戏,巩固和加深学生对C语言程序设计的基本知识,提高学生的编程能力和实际动手操作能力。

通过实训,使学生能够熟练掌握C语言编程技巧,理解程序设计的基本思想和流程,同时培养学生的团队协作和问题解决能力。

二、实训内容1. 游戏规则贪吃蛇是一款经典的电脑游戏,玩家通过键盘控制蛇在游戏区域中移动,吃掉随机出现的食物。

蛇在吃掉食物后,长度会增加,得分增加。

如果蛇头撞到墙壁或自己的身体,游戏结束。

2. 游戏界面游戏界面由一个矩形区域组成,代表游戏区域。

蛇用一系列方块表示,食物用不同的颜色表示。

游戏开始时,蛇的长度为3,随机生成食物。

游戏过程中,蛇会根据玩家的输入移动。

3. 游戏逻辑(1)初始化:设置游戏区域大小、蛇的初始位置和方向、食物的初始位置等。

(2)游戏循环:不断检测玩家输入,更新蛇的位置,判断蛇是否吃到食物、撞到墙壁或自己的身体。

(3)游戏结束:当蛇撞到墙壁或自己的身体时,游戏结束。

4. 程序设计(1)数据结构:定义蛇、食物和游戏区域的数据结构。

(2)函数设计:设计初始化函数、移动函数、判断是否吃到食物函数、判断是否撞到墙壁或自己的身体函数等。

(3)主函数:调用相关函数,实现游戏循环。

三、实训过程1. 设计阶段首先,根据游戏规则和界面设计,确定游戏的数据结构和函数。

然后,编写程序代码,实现游戏的基本功能。

2. 编码阶段根据设计阶段的设计,使用C语言编写程序代码。

在编写过程中,注意代码的可读性和可维护性。

3. 调试阶段在编写代码过程中,不断调试程序,修复出现的错误。

调试过程中,注意观察程序运行情况,分析问题原因,并找出解决方案。

4. 测试阶段完成程序编写后,进行测试,确保程序能够正常运行。

测试过程中,注意观察游戏效果,确保游戏规则和界面设计符合预期。

四、实训成果通过本次实训,成功设计并实现了贪吃蛇游戏。

游戏运行稳定,功能完整,达到了实训目的。

五、实训心得1. 理解程序设计的基本思想和流程,掌握C语言编程技巧。

单片机贪食蛇课程设计报告

单片机贪食蛇课程设计报告

单片机课程设计报告目录1设计任务及要求 (1)2总体设计思路及功能描述 (1)3 各部分软硬件设计原理及方案详细说明 (3)3.1 人机接口电路 (3)3.2单片机与PC机通信电路 (5)3.3 其他部分电路说明 (5)3.4 软件模块设计 (6)3.4.1 LCD初始化 (6)3.4.2 键盘扫描程序 (7)3.4.3 显示16*16点阵汉字 (8)3.4.4 食物的随机出现 (8)3.4.58X8点阵LED工作原理说明 (9)3.4.6锁存器(74HC573) (9)3.5软件编译 (11)4 调试的步骤及调试过程中出现的问题以及解决方法 (11)4.1 PROTEUS仿真 (11)4.2 硬件的安装 (12)4.3 调试注意事项 (12)4.3.1 硬件调试注意事项 (12)4.3.2 软件调试注意事项 (12)5 设计心得体会 (13)6 附录 (14)6.1总原理图 (14)6.2单片机程序代码 (14)7 参考文献 (23)正文:1设计任务及要求本设计以51系列单片机STC89C52为控制核心,以点阵液晶显示模块、键盘为人机接口,实现了一个贪食蛇游戏机。

通过本设计,令读者掌握利用单片机开发简单电子产品的基本技能,熟悉原理图绘制、仿真、软件设计、优化以及系统调试的基本方法,为进一步设计开发更为复杂的嵌入式模拟/数字混合系统打下一定的基础。

“贪食蛇”又称为“贪吃蛇”,是一种益智小游戏。

其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的蛋,越吃越长,只要蛇头碰到屏幕四周或者碰到自己的身子,小蛇就立即毙命并结束游戏。

本作品有上下左右四个按键来控制蛇头的移动方向,另有一个复位按键控制程序的重启,游戏界面方案一:采用分辨率为128×64的液晶显示屏方案二:和8*8点阵显示。

2总体设计思路及功能描述如图ChpNum-3所示,贪食蛇软件主要分成三个部分:主程序、外部中断服务程序、定时中断服务程序。

贪吃蛇程序设计报告(附C源码)

贪吃蛇程序设计报告(附C源码)

《计算机程序设计基础》课程设计题目用户管理系统学生姓名王孟学号 0909082920 指导教师郭克华学院信息科学与工程学院专业班级电气类 0829 完成时间 2009-7-1目录1.课程设计内容 (3)2.课程设计目的 (3)3.背景知识(可选项) (3)4.工具/准备工作(可选项) (4)5.设计步骤、方法等 (4)5.1. 步骤1:步骤名称(二级标题) (4)5.1.1. 步骤1.1:步骤名称(三级标题) ............................................ 错误!未定义书签。

5.2. 步骤2:步骤名称 (6)5.3. 步骤n:步骤名称 (8)6.设计结果及分析 (10)7.设计结论 (10)8.问题及心得体会 (10)9.对本设计过程及方法、手段的改进建议 (11)10.参考文献 (12)报告名称1. 课程设计内容产生一个固定大小没有边界的游戏区域,蛇从区域的中心开始,由玩家通过键盘控制蛇的运动方向,用蛇头去吃随机分布在游戏区域内的食物;蛇的运动限制在游戏区域内,游戏区域没有边界,所以蛇在区域内作循环运动;蛇的运动方向为直线运动,只走横和竖的方向,不走斜线;蛇的运动速度由游戏的难度来控制,难度越高,速度越快,游戏难度分为9个等级;蛇身体的长度从1开始每吃掉一份食物就增加一个长度;食物的出现安照随机分布的原则,蛇吃掉一份后随即在游戏区域内放一份新的食物;每吃掉一份食物得分为10*游戏的难度,游戏结束后统计全部的得分;游戏结束的条件为:在控制蛇的过程中蛇头碰到蛇的身体的任何部位;2. 课程设计目的(1)、通过c语言编程实现贪吃蛇游戏的运行。

(2)、对代码进行进一步的调试优化,以使游戏高效运行,操作化强,人性化强。

(3)、通过编程,使自己掌握C语言编程的基本方法,有独立编程的能力,并学到实战经验。

3. 背景知识(可选项)本程序主要是一个交互式的游戏程序,通过玩家的键盘上下左右键控制贪吃蛇的运动方向。

贪吃蛇嵌入式系统课程设计报告.doc

贪吃蛇嵌入式系统课程设计报告.doc

贪吃蛇嵌入式系统课程设计报告嵌入式系统课程设计报告姓名学号题目分组情况组长组员任务分配概述 1.1. 内容简介有一款经典的小游戏叫“贪食蛇”,又名贪吃蛇。

就是一条小蛇,不停地在屏幕上游走,吃各个方向出现的蛋,越吃越长。

只要蛇头碰到屏幕四周,或者碰到自己的身子,小蛇就立即毙命。

本课程设计的内容就是使用我们学习过的嵌入式系统的知识,在UP-NETARM3000 嵌入式开发硬件平台上和uc/os-ii的软件开发框架下,实现的键盘,触摸屏,LCD等硬件功能的统一的完整系统。

1.2. 功能描述1.可以通过嵌入式设备的键盘和触摸屏同时控制游戏流程,键盘中起作用的是方向键2,4,6,8;同时方向键也是贪吃蛇移动的开始键。

在触摸屏中可以进行的菜单操作,包括难度设置,暂停游戏和帮助信息。

2.贪吃蛇是由绿色连续的若干方形组成,程序中随机地出现一些“食物”(用红色的矩形表示),贪吃蛇通过吃“食物”增加自身的长度并增加相应的分值。

同时,程序再随机产生一个“食物”。

3.贪吃蛇撞到矩形边界,或者自己身体的一部分,游戏即告结束。

4.为了增加难度,每个“食物”都有一个计数器,贪吃蛇每走一步,计数器都会增加1,当计数器达到上限时,食物会变成石头,贪吃蛇撞到石头上,游戏也会结束。

5.贪吃蛇每吃掉一个“食物”,分值会相应增加,增加的幅度与从“食物”产生到被吃掉的时间间隔有关,时间间隔约小,分值增加越多。

所以PLAYER必须尽快把食物吃掉,越早得分越高。

否则它会变成石头,石头越多难度越大。

2. 系统总体设计2.1. 系统硬件设计因为条件有限,系统采用北京博创兴业科技有限公司生产UP-NETARM3000 嵌入式开发平台。

UP-NETARM3000 嵌入式开发平台是一个完整的开发系统,硬件完整(包括ARM7TDMI 结构芯片S3C44B0X,工作频率60MHz;显示320240 象素、256 色LCD,带四线电阻式触摸屏;键盘17 键数字小键盘等),安装比较简单,完全可以实现本课题。

基于51单片机的贪吃蛇游戏设计

基于51单片机的贪吃蛇游戏设计

基于51单⽚机的贪吃蛇游戏设计本科时候做的⼀个课程作业,⾃⼰搭⼀个很简易的电路,⽐较有意思且易上⼿,故将之记录下来。

(全套的仿真及代码,演⽰视频,课程报告以及PPT展⽰上传在。

)⼀. 实验⽬的(1)通过对C51语⾔的理解,编写程序实现对贪吃蛇的有效控制;(2)通过对51单⽚机硬件的学习,学会运⽤⾯包板,独⽴按键、点阵屏等,完成对完整电路的搭建过程;(3)通过对Proteus仿真软件的学习,实现基于STC89C52单⽚机的8*8点阵贪吃蛇的硬件电路仿真。

⼆. 实验介绍贪吃蛇是⼀款经典⼩游戏,其游戏的规则是:玩家通过四个⽅向键来控制蛇的移动,控制其在地图上吃⾖⼦。

吃掉⾖⼦后蛇⾝相应加长,蛇⾝速度加快。

蛇运动过程中撞到墙壁或蛇⾝,则⽴即结束本轮游戏。

三. 实现功能(1)制作⼀个8*8点阵的贪吃蛇游戏;(2)通过LED点阵屏为载体显⽰数据;(3)外接4个独⽴按键作为输⼊端,分别控制蛇的移动⽅向(上、下、左、右);(4)蛇头与墙壁或蛇⾝相撞,随即结束游戏并复位。

四. ⽅案设计在该系统中,硬件部分包括STC89C52单⽚机,8*8点阵屏,4个按键;软件部分是在keil环境下⽤C51语⾔编写,设置蛇的初始段数为2点,并设置有障碍墙壁,游戏结束后⾃动复位。

(1)贪吃蛇的移动在贪吃蛇的移动过程中,每次需要将蛇头要到的下⼀个LED灯点亮,对应蛇尾的LED灯熄灭。

在程序中即是先把蛇尾位置的值传给蛇头的下⼀个位置,然后改变蛇尾的值即可。

蛇头下⼀个位置的确定由蛇头和偏移量来确定,每次通过操作四个独⽴按键来控制蛇步进的偏移量。

因⽽只要将蛇头的位置加上其偏移量的值,即可得到新的蛇头位置。

(2)⾷物的出现在市场上所流⾏的贪吃蛇游戏中,⾷物的出现是⼀种随机⾏为,这在程序中需要做⼀个随机数来⽀撑该过程。

我们组在实验过程中也尝试了该过程,最终选择让⾷物出现在蛇尾的后⼀步,来执⾏整个程序。

与此同时,⾷物出现的位置不能与蛇的位置重合,也不能超出墙外,否则需要重置⾷物。

基于51单片机的贪吃蛇游戏设计(Proteus仿真含完整程序)

基于51单片机的贪吃蛇游戏设计(Proteus仿真含完整程序)

中北大学硬件大型实验说明书学生姓名:学号:学院: 计算机与控制工程学院专业: 计算机科学与技术题目: “贪吃蛇”游戏设计指导教师:职称:2016 年 9 月 14 日目录一、需求分析 (1)二、工具 (1)三、概要设计 (1)四、详细设计(硬件设计和连接部分) (2)1.组件介绍 (2)1)AT89C55单片机 (2)2)Matrix-8X8点阵屏幕 (3)3)74LS154译码器 (3)4)CMOS反相器 (4)5)按键 (4)6)7-SEG BCD (5)2.硬件设计 (5)五、心得体会 (7)附录I(程序) (9)附录II(运行截图) (16)一、需求分析我们的课程设计题目是基于51单片机和一些基础组件设计出一个贪吃蛇游戏。

游戏的实现需要一个16x16的屏幕(由4个8x8的点阵屏组成)和5个按键,其中4个按键控制贪吃蛇的前进方向,另外一个按键可以使游戏重新开始。

另外还需要一个显示BCD码的数字型LED灯组用于记录得分。

贪吃蛇游戏需要实现的功能是:游戏开始时会出现一个长度为init_length的贪吃蛇,和一个随机出现的苹果(必须是贪吃蛇蛇身以外的一个点)。

玩家可以通过按键控制贪吃蛇的前进方向,但是只能转向,而不能向前或者向后,例如:当贪吃蛇向上行走时,只能通过左键和右键来让它左转或者右转,另外两个按键将失灵。

当贪吃蛇吃到苹果后,贪吃蛇尾部将会增加一个点,而屏幕上又会随机出现一个不与贪吃蛇重合的点。

此时积分器加一。

当贪吃蛇马上就要“撞向”屏幕边缘时,会从相反的一边钻出来。

所以“撞墙”并不会导致游戏结束。

而当贪吃蛇吃到自身时则会使游戏结束,并且会自动回到游戏初始化时的状态。

任何时候按下“重新开始”按键都将使游戏回到初始状态。

二、工具51单片机开发板,Keil uVision3,ISIS 7 Professional。

三、概要设计根据我们要实现的功能,我们决定把这次课程设计分成三个部分。

第一个部分为硬件设计和连接部分。

贪吃蛇嵌入式系统课程设计报告.doc

贪吃蛇嵌入式系统课程设计报告.doc

贪吃蛇嵌入式系统课程设计报告嵌入式系统课程设计报告姓名学号题目分组情况组长组员任务分配概述 1.1. 内容简介有一款经典的小游戏叫“贪食蛇”,又名贪吃蛇。

就是一条小蛇,不停地在屏幕上游走,吃各个方向出现的蛋,越吃越长。

只要蛇头碰到屏幕四周,或者碰到自己的身子,小蛇就立即毙命。

本课程设计的内容就是使用我们学习过的嵌入式系统的知识,在UP-NETARM3000 嵌入式开发硬件平台上和uc/os-ii的软件开发框架下,实现的键盘,触摸屏,LCD等硬件功能的统一的完整系统。

1.2. 功能描述1.可以通过嵌入式设备的键盘和触摸屏同时控制游戏流程,键盘中起作用的是方向键2,4,6,8;同时方向键也是贪吃蛇移动的开始键。

在触摸屏中可以进行的菜单操作,包括难度设置,暂停游戏和帮助信息。

2.贪吃蛇是由绿色连续的若干方形组成,程序中随机地出现一些“食物”(用红色的矩形表示),贪吃蛇通过吃“食物”增加自身的长度并增加相应的分值。

同时,程序再随机产生一个“食物”。

3.贪吃蛇撞到矩形边界,或者自己身体的一部分,游戏即告结束。

4.为了增加难度,每个“食物”都有一个计数器,贪吃蛇每走一步,计数器都会增加1,当计数器达到上限时,食物会变成石头,贪吃蛇撞到石头上,游戏也会结束。

5.贪吃蛇每吃掉一个“食物”,分值会相应增加,增加的幅度与从“食物”产生到被吃掉的时间间隔有关,时间间隔约小,分值增加越多。

所以PLAYER必须尽快把食物吃掉,越早得分越高。

否则它会变成石头,石头越多难度越大。

2. 系统总体设计2.1. 系统硬件设计因为条件有限,系统采用北京博创兴业科技有限公司生产UP-NETARM3000 嵌入式开发平台。

UP-NETARM3000 嵌入式开发平台是一个完整的开发系统,硬件完整(包括ARM7TDMI 结构芯片S3C44B0X,工作频率60MHz;显示320240 象素、256 色LCD,带四线电阻式触摸屏;键盘17 键数字小键盘等),安装比较简单,完全可以实现本课题。

基于单片机的贪吃蛇游戏机设计与实现开题报告

基于单片机的贪吃蛇游戏机设计与实现开题报告

基于单片机的贪吃蛇游戏机设计与实现1设计的背景及目的随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界。

人们不再拘泥于一块天地,加班,出差成了现代人不可避免的公务。

而此时一款可以随时随地娱乐的游戏成了必需品。

贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,吸引了不少人。

这一款游戏紧紧地抓住了人们的心理,虽然简单,却其乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具。

如今,游戏机风行的程度,是第一台电子游戏机的研制者诺兰-布什纳尔先生始料不及的。

在全世界最大的城市,直至最小的村庄,从纽约最辉煌的游乐场,到高加索最小的乡镇儿童娱乐点,在千家万户,正在进行着千千万万这样的“战斗”,伴随着无数成功与失败,兴奋与懊丧。

游戏机带来了一个全球性的疯狂症,其他任何娱乐与之相比都望尘莫及。

然而,究竟是什么原因使游戏机如此风行呢?在回顾了游戏机发展简史之后,我们不难悟出,技术进步在游戏机发展过程中起到了极大的促进作用。

当前科学技术飞速发展,特别是微电子技术,计算机软件与应用技术的发展,使得人们的日常生活丰富多彩。

单片微型计算机(简称单片机)作为微型计算机家族的一员,以其独特的结构,良好的稳定性,便宜的价格在嵌入式领域广泛应用。

与传统的PC上设计的贪吃蛇游戏不同,本次作者利用Proteus硬件仿真软件,采用单片机、液晶显示屏、扬声器、按键等搭建硬件平台,C语言编程,实现便携地贪吃蛇游戏。

随着深蓝计算机与人的棋类对决,到现在的PSP游戏机或者是家庭用的X-BOX游戏机,游戏机的技术是日益的发展、进步。

但是,技术进步绝不是游戏机风行的唯一因素。

随着终端设备开发能力的加强,作为娱乐终端的游戏机也得到了很大程度的发展。

只有得到了游戏终端技术的支持,才能做出更新、更高难的游戏。

这也加速了游戏机在全球风行程度,所以对于游戏机的研究和设计具有很重要的意义,这也是本课题研究的来源。

单片机课程设计(贪吃蛇)

单片机课程设计(贪吃蛇)

单片机课程设计报告(贪吃蛇)院校:专业:班级:姓名:学号:指导老师:设计日期:一、选题的背景与意义单片微型机简称单片机,它是在一片芯片上集成了中央处理部件,存储器、定时器/计数器和各种输入输出设备等接口部件。

单片机是微机发展的一个重要的分支,自问世以来,性能不断地改善和提高,加之单片机具有集成度高、功能强、速度快、体积小、功耗小、使用方便、性能可靠、价格便宜等优点,故在工业控制、数据采集和处理、通信系统、家用电器等领域的应用日益广泛。

国虽然起步较晚,但单片机的潜力越来越被人们所重视,尤其在工业控制、自动化仪器仪表、计算机系统接口、智能化外设等应用领域发展很快。

它的应用对于产品升级换代、机电一体化都具有重要的意义,在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数,被用于各种不同产品的生产。

在通信行业更为广泛利用,手机从只能基本通话,到现在一台手机拥有各种不同的功能,单片机得到了广泛的应用。

手机可以听音乐,听收音机,玩游戏,照相片等等,比较流行的手机游戏贪吃蛇就能用单片机实现。

二、研究的基本容与拟解决的主要问题贪吃蛇游戏设计主要硬件由单片机最小系统,8*8点阵,4个方向按键,7805稳压电路,整个的游戏设计外围电路比较少,主要核心在于游戏的程序设计,本设计的游戏规则也参照现在手机流行的贪吃蛇游戏的规则去设计,当蛇吃到食物时,蛇身就会自动增加一格,食物随机出现在屏幕上,当蛇碰到墙壁时,游戏结束。

本设计需要考虑的问题有以下几个:1.8*8点阵的选择2.保证游戏的流畅性和及时响应性3.游戏的设计应该接近人性化贪吃蛇初始化子程序流程图贪吃蛇运行子程序是整个程序设计的核心,首先由系统检测是否有按键按下,确定有按键按下后,外部中断程序自动执行,开始扫描矩阵键盘,得到键值,根据键值判断贪吃蛇要走的方向。

在游戏运行的期间,系统不断检测蛇是否死亡,蛇是否已经最长,蛇是否吃到了食物。

若蛇已经死亡,则蛇的死亡标记位被置位,跳转到死亡界面,检测是否有按键按下,有就跳转到游戏开始界面,重新开始游戏,无则等到有任意键按下。

嵌入式实训贪吃蛇报告

嵌入式实训贪吃蛇报告

嵌入式系统在现代科技中扮演着越来越重要的角色,嵌入式开发已经成为计算机科学与技术专业的重要课程。

为了提高学生对嵌入式系统的理解与应用能力,我们开展了嵌入式实训课程,本次实训课题为贪吃蛇游戏设计。

贪吃蛇游戏是一款经典的休闲游戏,具有较高的趣味性和挑战性。

通过本次实训,我们旨在让学生掌握嵌入式系统原理及程序编写,提高学生的编程能力,并培养学生的团队协作精神。

二、实验目的1. 熟悉嵌入式系统原理及程序编写。

2. 掌握嵌入式系统开发环境的使用。

3. 提高编程能力,培养创新意识。

4. 培养团队协作精神。

三、实验内容及要求1. 实验环境:基于ARM处理器的嵌入式开发板,例如STM32、ESP32等。

2. 实验工具:Keil uVision、IAR EWARM、Code::Blocks等。

3. 实验内容:(1)设计贪吃蛇游戏界面,包括蛇、食物、分数等元素。

(2)实现蛇的移动、食物的生成、分数的计算等功能。

(3)实现游戏结束、重新开始等操作。

(4)优化游戏性能,提高用户体验。

4. 实验要求:(1)使用C语言或C++进行编程。

(2)遵循模块化设计原则,提高代码可读性。

(3)编写详细注释,便于他人阅读。

(4)提交实验报告,包括实验目的、内容、过程、结果及心得体会。

1. 确定游戏界面首先,我们需要设计贪吃蛇游戏界面,包括蛇、食物、分数等元素。

在嵌入式开发板屏幕上,我们可以使用字符图形或图形库来绘制界面。

2. 编写蛇的移动函数蛇的移动可以通过计算蛇头的新坐标来实现。

根据用户输入的方向键,我们可以改变蛇头的移动方向,并更新蛇的身体坐标。

3. 实现食物的生成食物的生成可以通过随机生成食物的坐标来实现。

当蛇头与食物坐标重合时,蛇的身体长度增加,分数增加。

4. 计算分数分数的计算可以通过设置一个变量来记录蛇吃掉食物的次数,每次吃掉食物,分数加1。

5. 实现游戏结束、重新开始等操作当蛇头与蛇身或墙壁碰撞时,游戏结束。

此时,我们可以提供一个重新开始的按钮或按键,让用户重新开始游戏。

《贪吃蛇游戏课程设计》报告

《贪吃蛇游戏课程设计》报告

贪吃蛇游戏程序设计一、课程设计任务贪吃蛇小游戏程序设计二、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。

(1).收集资料,分析课题,分解问题,形成总体设计思路;(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(4).完成课程设计报告,并进行答辩三、需求分析3.1、程序功能贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想程序关键在于表示蛇的图形及蛇的移动。

用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。

移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。

食物的出现与消失也是画矩形块和覆盖矩形块。

为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图四、设计的具体实现(1)函数定义函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#define N 200#define M 200#include"graphics.h"#include<stdlib.h>#include<stdio.h>#include<string.h>#include<iostream.h>#include<dos.h>#include<conio.h>#include <windows.h>#define LEFT 97//A#define RIGHT 100//D#define DOWN 115//S#define UP 119//W#define Esc 0x011bint i,key;int score=0;int gamespeed=250;//游戏速度可根据实际情况自行调整struct Food {int x;//食物的横坐标int y;//食物的纵坐标int yes;//判断是否要出现食物的变量}food;//食物的结构体struct Snake{int x[M];int y[M];int node;//蛇的节数int direction;//蛇的移动方向int life;//蛇的生命,0表示活着,1表示死亡}snake;void Init();//图形驱动void Close();//图形结束void DrawK();//开始画面void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束void PrScore();//输出成绩(2)主函数main( )主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序void main()//主函数{Init();//图形驱动DrawK();//开始画面GamePlay();//玩游戏的具体过程Close();//图形结束}void Init()//图形驱动{int gd=DETECT,gm;initgraph(&gd,&gm," ");/*此处为turboc的路径,读者可以根据自己的电脑而改*/ cleardevice();}(3)画界面函数DrawK( )主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。

基于51单片机的贪吃蛇游戏的开题报告

基于51单片机的贪吃蛇游戏的开题报告

基于51单片机的贪吃蛇游戏的开题报告
一、项目背景
贪吃蛇是一个经典的游戏,深受广大玩家的喜爱。

本项目基于51单片机实现贪吃蛇游戏,旨在通过此项目掌握嵌入式系统设计及单片机编程技术。

二、项目概述
本项目的主要功能是实现贪吃蛇游戏。

通过51单片机实现游戏中的各种功能,包括蛇的移动,食物的产生,得分统计等。

同时,还需要设计合适的硬件电路,包括数码管、按键等,实现游戏的交互。

三、项目计划
1. 硬件设计
设计所需硬件电路,包括数码管、按键等,以实现游戏的交互。

2. 软件设计
(1)初始化
初始化游戏画面,初始化蛇的位置和方向,初始化食物位置,初始化得分等变量。

(2)蛇的移动
实现蛇的移动,根据按键输入确定蛇的方向,并判断是否碰到边界或自己的身体,以及是否吃到食物等。

(3)食物的产生
通过随机函数产生食物的位置,并将其显示在屏幕上。

(4)得分统计
统计蛇吃到的食物数量,每吃一个食物得分加一。

(5)游戏结束
当蛇碰到边界或自己的身体时,游戏结束,显示得分。

3. 调试测试
完成软硬件设计后,进行测试调试,确保游戏功能正常。

四、预期成果
通过本项目,期望掌握51单片机编程技术,熟练掌握嵌入式系统设计,实现一个基于51单片机的贪吃蛇游戏。

五、参考文献
1.《51单片机原理与应用》
2.《嵌入式系统开发技术详解》
3.《C语言程序设计实践》。

(完整word版)贪吃蛇实验报告.docx

(完整word版)贪吃蛇实验报告.docx

(完整word版)贪吃蛇实验报告.docx《计算机程序设计》课程设计报告课题名称贪吃蛇游戏班级学号姓名指导教师设计时间至设计地点常熟理工学院计算机科学与工程学院常熟理工学院计算机科学与工程学院目录1需求分析 (1)2系统分析和设计 (1)2.1数据结构的设计和选择的理由 (1)2.2系统模块划分和模块结构 (2)2.3流程图 (2)2.4数据类型、全局变量和函数说明 (3)3程序测试和运行结果 (4)4课程报告小结 (5)4.1分数重叠显示 (5)4.2速度太快 (5)4.3食物可能出现在蛇身上 (5)附录 A :程序源代码 (6)《 C 程序设计》课程设计1 需求分析【阐述课程设计应该完成的功能】使用键盘的上下左右,来控制蛇的运动方向,ESC 键退出,并显示得分。

2系统分析和设计2.1 数据结构的设计和选择的理由本游戏中涉及的主要数据结构是如何表示运动的蛇、食物状态等问题。

2.1.1 从游戏参考画面中我们可以看到,贪吃蛇的身体是一节节的,由一个个大小相同的方块组成,那么我们可以用一个 (x,y) 坐标为左上角的、固定宽度的正方形来表示一节蛇身。

为表示连续的多节身体,那么我们可以采用数组(或链表,或线性表)等数据结构来表示。

下面以数组方式为例:struct Point {int x, y;}struct Point nodes[MAX_LENGTH];// 蛇身数组,MAX_LENGTH为最大蛇长贪吃蛇是在不断的运动的,我们研究蛇的运动可以发现这样的特点:1. 蛇头由键盘控制,键盘不操作时,保持原有方向运动;(用int direction; 表示 )2.运动时,蛇身后面一节移动到前面一节的位置。

当我们用nodes[0]表示蛇头的时候, nodes[1] 运动到 nodes[0]处; nodes[2] 运动到 nodes[1]处 ...。

3. 吃到一个食物以后,蛇身会增加一节。

即该数组中的有效数据个数加一。

单片机贪吃蛇课程设计报告模板

单片机贪吃蛇课程设计报告模板

电气与信息工程学院单片机课程设计报告一、设计任务及要求基本功能:制作一个8*8点阵的贪吃蛇游戏,系统以单片机的C语言的软件设计,系统通过LED点阵屏为载体显示数据,并用五个输入端表示五个控制键(上下左右及加速)。

系统硬件部分由STC89C52RC单片机,8*8点阵屏,5个按键,软件部分在keil环境下用C51语言编写,包括游戏初始化蛇的节数,以及障碍墙壁,游戏结束时自动复位。

具体要求:1、用四个按钮控制贪吃蛇的行径,一个按钮控制贪吃蛇的加速,蛇的初始长度为2点,设置墙壁。

2、蛇吃到长度为1点的食物时,自身长度增加1点。

2、速度按钮带有一次加速,按两下速度按钮蛇的行进速度回到初始值。

3、当蛇碰到墙壁或自己的身体时游戏结束。

4、用proteus设计,仿真基于STC89C52RC单片机的8x8点阵贪吃蛇的硬件电路。

5、游戏结束,系统自动复位。

二、硬件电路设计本系统以STC89C52RC为核心,设置12MHz的晶振,使得单片机有合理的运行速度。

LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示程序的运行情况,是模块化的显示组件,本设计采用8*8共阳红色点阵显示屏,用来显示贪吃蛇的游戏画面。

五个独立按键控制蛇的游走方向(上下左右)和加速减速的功能。

贪吃蛇是一款经典的小游戏,玩家通过按键操控贪吃蛇不断地吃食物,蛇身逐渐伸长,当蛇碰到蛇身和墙壁时游戏结束。

需要注意的是实际元件中,点阵的封装不尽相同,因此需要测试出每个引脚的功能,以便正确连线。

注意,每个像素点的额定电压在3v左右,电压过大将会彻底损坏。

三、系统软件设计软件方面采用了C51编写代码,代码编写模块如下图:核心代码主要为游戏处理、信息处理和按键处理。

编写游戏的功能代码,先定义游戏的数据结构和常量。

其中食物的数据结构采用结构体定义,两个unsigned char变量分别定义为食物的横纵坐标;蛇的身体定义为长度最大值为20的数组,游戏中贪吃蛇长度达到39,游戏通关结束。

贪吃蛇专业课程设计方案报告

贪吃蛇专业课程设计方案报告

目录1.课程设计目标 (3)2.课程设计任务和要求 (3)2.1课程设计内容 (3)2.2课程设计要求 (3)2.3课程设计环境 (3)3.课程设计方案 (3)3.1方案论证 (3)3.2程序整体设计说明 (3)3.3设计思绪 (4)3.4设计总体步骤图 (4)3.5设计具体实现 (5)4.程序测试 (8)4.1测试内容和结果 (8)4.2程序运行效果图 (9)5.课程设计总结 (10)6.参考文件 (11)附录源程序 (11)1.课程设计目标:●复习、巩固才C、C++基础知识,深入加深对VC技术了解和掌握;●课程设计为学生提供了一个既动手又动脑,独立实践机会,将书本上理论知识和实际有机结合起来,锻炼学生分析处理实际问题能力。

●培养学生在项目开发中团体合作精神、创新意识及能力2.课程设计任务和要求2.1 课程设计内容贪吃蛇游戏开发,首先它能够为大家提供一个目前比较流行休闲小游戏。

贪吃蛇是家喻户晓益智类小游戏,选择这个题目一是为了将自己所学知识加以利用,二是一直以来贪吃蛇这个游戏就深深地吸引着大家,它制作方法对于很多同学而言全部是很神秘。

所以我们期望经过这学期所学知识把它剖析开来,真真正正了解它本质和精髓。

在这次学习中我们将从实践和实际项目中提升自己编程能力。

所以决定选择这个题目作为VC课程设计。

最终一部分就是游戏模块划分,依据分析,贪吃蛇这个程序一共要实现以下多个功效,包含游戏方面开始游戏、暂停游戏和停止游戏,游戏设置(蛇颜色、食物颜色操作说明等)和积分。

2.2课程设计要求●对系统进行功效模块分析、控制模块分析正确,符合课题要求,实现对应功效;能够加以其它功效或修饰,使程序愈加完善、合理;●系统设计要实用,采取模块化程序设计方法,编程简练、可用,功效全方面;●说明书、步骤图要清楚;●统计设计情况(备查,也为编写设计说明书作好准备);2.3课程设计环境Windows7操作系统,VC6.0开发环境。

基于51单片机8x8点阵贪吃蛇综合课程设计报告

基于51单片机8x8点阵贪吃蛇综合课程设计报告

《电子线路综合》课程设计报告设计课题:贪吃蛇掌上游戏机专业班级:电子信息121班学生姓名:指导教师:设计时刻:2015 .12 . 31赣南师范学院科技学院数学与信息科学系《贪吃蛇掌上游戏机》一、设计任务与要求大体功能:制作一个8*8点阵的贪吃蛇游戏,系统以单片机的c语言的软件设计,系统通过LED点阵屏为载体显示数据,并用四个输入端表示四个操纵键(上下左右)。

系统硬件部份由STC89C52RC单片机,8*8点阵屏,4个按键,软件部份在keil环境下用c51语言编写,包括游戏初始蛇的段数,和障碍墙壁,游戏终止时自动复位。

具体要求:一、用四个按钮操纵蛇的方向,蛇的原始段数为2点,并设置墙壁。

二、蛇的移动速度随着蛇的段数增加而增加,当蛇碰着墙壁和自己的躯体时死亡3、用proteus设计,仿真基于STC89C52RC单片机的8*8点阵贪吃蛇的硬件电路。

4、蛇死亡,游戏终止,系统自动复位。

二、方案设计与论证图一、系统框图一、贪吃蛇的移动当蛇没有吃到任何食物时,每次步进蛇头的将要到的下一个LED灯点亮,而蛇尾那个LED灯会灭掉,程序设计时只要将蛇尾那点位置的值传给蛇头下一个位置的值,再改变蛇尾的值即可。

而蛇头下一个位置依照蛇头和偏移量来确信,每次上下左右按键决定了蛇步进的偏移量,只要将蛇头的位置加上偏移量的值即取得新的蛇头位置。

当蛇头碰着周围的墙壁或碰着自己的身体,小蛇就当即毙命并终止游戏。

二、食物的随机显现食物的显现是一种随机行为,因此必需做一个随机数,而且食物显现的位置不能与蛇的位置相同,也不能超出墙外,不然就要重置食物。

那个地址利用程序中的按时计数器的低八位TL0的数值,由于TL0不断转变,不同的时刻点数值不同,我那个地址利用的是C 语言里的文件库,利用里面的随机函数srand(),先利用srand(TL0)取得TL0的数值,再利用两次rand()%8别离取得食物显现的横纵坐标的位置。

三、原理图及元器件清单1.单位电路设计(1)AT89C52单片机最小系统模块本系统以STC89C52RC为核心加上复位电路和晶振电路组成,本系统选用12M 的晶振,使得单片机有合理的运行速度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电气与信息工程学院单片机课程设计报告设计题目:基于单片机的贪吃蛇设计2016 年11月22 日一、设计任务及要求基本功能:制作一个8*8点阵的贪吃蛇游戏,系统以单片机的C语言的软件设计,系统通过LED 点阵屏为载体显示数据,并用五个输入端表示五个控制键(上下左右及加速)。

系统硬件部分由STC89C52RC单片机,8*8点阵屏,5个按键,软件部分在keil环境下用C51语言编写,包括游戏初始化蛇的节数,以及障碍墙壁,游戏结束时自动复位。

具体要求:1、用四个按钮控制贪吃蛇的行径,一个按钮控制贪吃蛇的加速,蛇的初始长度为2点,设置墙壁。

2、蛇吃到长度为1点的食物时,自身长度增加1点。

2、速度按钮带有一次加速,按两下速度按钮蛇的行进速度回到初始值。

3、当蛇碰到墙壁或自己的身体时游戏结束。

4、用proteus设计,仿真基于STC89C52RC单片机的8x8点阵贪吃蛇的硬件电路。

5、游戏结束,系统自动复位。

二、硬件电路设计本系统以STC89C52RC为核心,设置12MHz的晶振,使得单片机有合理的运行速度。

LED 点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示程序的运行情况,是模块化的显示组件,本设计采用8*8共阳红色点阵显示屏,用来显示贪吃蛇的游戏画面。

五个独立按键控制蛇的游走方向(上下左右)和加速减速的功能。

贪吃蛇是一款经典的小游戏,玩家通过按键操控贪吃蛇不断地吃食物,蛇身逐渐伸长,当蛇碰到蛇身和墙壁时游戏结束。

需要注意的是实际元件中,点阵的封装不尽相同,因此需要测试出每个引脚的功能,以便正确连线。

注意,每个像素点的额定电压在3v左右,电压过大将会彻底损坏。

三、系统软件设计软件方面采用了C51编写代码,代码编写模块如下图:核心代码主要为游戏处理、信息处理和按键处理。

编写游戏的功能代码,先定义游戏的数据结构和常量。

其中食物的数据结构采用结构体定义,两个unsigned char变量分别定义为食物的横纵坐标;蛇的身体定义为长度最大值为20的数组,游戏中贪吃蛇长度达到39,游戏通关结束。

游戏处理模块为贪吃蛇在游玩过程中遇到的需要被处理的情况,主要实现的功能包括以下四个方面,即移动、食物、死亡和加速。

1、移动游戏开始后,贪吃蛇在固定的周期内会向前移动一格,此时“贪吃蛇”身体从尾巴至头部每一个后序节点会向前序节点移动,后序节点移动完毕后,头部会根据此时按键的方向对相应的横纵坐标进行加减。

2、食物放置贪吃蛇向前移动后,此时要判断蛇头是否与食物的横纵坐标一一对应,如果不是则退出该模块,进入下一模块;如果是,则贪吃蛇的节数增加一。

随后将进入创建新的食物模块,为了避免食物与贪吃蛇的节点坐标重复,食物在创建后要与贪吃蛇的每个节点的坐标一一比较,如果重合则重新创建食物的坐标,直到创建成功为止。

3、加速处理在游戏过程中,贪吃蛇的初始速度很慢,为了提高游戏娱乐性,设置独立按键加速键,当按下加速键,则贪吃蛇的移动速度即时间间隔变短,使游戏更具有挑战性,当再按下则恢复原来的速度。

N4、结束贪吃蛇在向前移动后,有可能撞到墙壁或自己的身体,也有可能吃到食物,或者只是向前移动一格,移动完毕后如果吃到了食物,如果贪吃蛇的节数达到了最大值,那么玩家将会通关游戏,并且游戏退出,此时需要判断游戏是否结束,一共有三种判别,前两种为失败结局,即撞到了墙壁或自己的身体,最后一种为通关结局,游戏将初始化。

N源代码如下:#include <reg51.h>#define uchar unsigned char#define SNAKE 20#define TIME 50#define SPEED 80sbit up=P3^3;sbit down=P3^1;sbit right=P3^2;sbit left=P3^4;sbit speedup=P3^5;sbit LATCH1=P3^6;sbit LATCH2=P3^7;uchar x[SNAKE+1];uchar y[SNAKE+1];uchar time,n,i,e;unsigned char const seg[]={0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81}; unsigned char code wei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; char addx,addy;void delay(char MS){char us,usn;while(MS!=0){usn = 0;while(usn!=0){us=0xff;while (us!=0){us--;};usn--;}MS--;}}bit knock(){bit k;k=0;if(x[1]>7||y[1]>7)k=1;for(i=2;i<n;i++)if((x[1]==x[i])&(y[1]==y[i]))k=1;return k;}void gameOver(){while(!i==8){P2=0x00;P1=0xff;LATCH1=1;LATCH1=0;P2=wei[i];LATCH2=1;LATCH2=0;P1=seg[i];delay(1000);i++;}}void turnkey(){if(!left){addy=0;if(addx!=1)addx=-1; else addx=1;}if(!right){addy=0;if(addx!=-1)addx=1; else addx=-1;}if(!up){addx=0;if(addy!=-1)addy=1; else addy=-1;}if(!down){addx=0;if(addy!=1)addy=-1; else addy=1;}if(!speedup){e=e-40;while(e<=39)e=SPEED;}}uchar mux(uchar temp){if(temp==7)return 128;if(temp==6)return 64;if(temp==5)return 32;if(temp==4)return 16;if(temp==3)return 8;if(temp==2)return 4;if(temp==1)return 2;if(temp==0)return 1;return 0;}void timer0(uchar k){while(k--){for(i=0;i<SNAKE+1;i++){P2=mux(x[i]);P1=255-mux(y[i]);turnkey();delay(TIME);P2=0x00;P1=0xff;}}}void main(void){e=SPEED;P0=0x00;P1=0xff;P2=0x00;P3=0xff;while(1){for(i=3;i<SNAKE+1;i++)x[i]=100;for(i=3;i<SNAKE+1;i++)y[i]=100; x[0]=4;y[0]=4;n=3;x[1]=1;y[1]=0;x[2]=0;y[2]=0;addx=0;addy=0;while(1){if(!left||!right||!up||!down)break;timer0(1);}while(1){timer0(e);if(knock()){gameOver();e=SPEED;break;}if((x[0]==x[1]+addx)&(y[0]==y[1]+addy)){n++;if(n==SNAKE+1){n=3;for(i=3;i<SNAKE+1;i++)x[i]=100;for(i=3;i<SNAKE+1;i++)y[i]=100;}x[0]=x[n-2];y[0]=y[n-2];}for(i=n-1;i>1;i--){x[i]=x[i-1];y[i]=y[i-1];}x[1]=x[2]+addx;y[1]=y[2]+addy;}}}四、调试结果与分析结果:本次设计未能在硬件上调试成功,但在proteus上的仿真可以实现。

程序软件编译器使用uVision4。

在用uVision4编写单片机程序时,因uVisio4往往只能修改语法上的错误,对于算法上的错误不好检查,而直接下载到单片机中又受电路板的限制不方便调试,所以采用Proteus仿真。

先在Proteus上绘制出硬件电路,电路设计完成后就可以进行仿真。

先双击单片机,把用uVision4生成的hex文件指定为下载文件,最后点击play按钮即可进行仿真。

系统上电后首先对LED进行初始化,接着对定时器初始化,并启动定时器,接着执行程序主体逻辑,程序主体逻辑执行一遍后检查是否中断发生,中断源有两个,一个是驱动贪吃蛇自行前进时的定时中断,另一个是用户控制贪吃蛇移动方向的键盘中断,任意中断的发生都会改变贪吃蛇的当前状态。

若中断没有发生,主程序继续判断蛇头是否碰到墙壁或蛇头尾相撞,若是,结束游戏,否则,继续执行主程序循环。

四、总结六、参考文献。

相关文档
最新文档