贪吃蛇游戏设计毕业设计论文.docx

上传人:b****5 文档编号:4623353 上传时间:2022-12-07 格式:DOCX 页数:38 大小:180.25KB
下载 相关 举报
贪吃蛇游戏设计毕业设计论文.docx_第1页
第1页 / 共38页
贪吃蛇游戏设计毕业设计论文.docx_第2页
第2页 / 共38页
贪吃蛇游戏设计毕业设计论文.docx_第3页
第3页 / 共38页
贪吃蛇游戏设计毕业设计论文.docx_第4页
第4页 / 共38页
贪吃蛇游戏设计毕业设计论文.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

贪吃蛇游戏设计毕业设计论文.docx

《贪吃蛇游戏设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《贪吃蛇游戏设计毕业设计论文.docx(38页珍藏版)》请在冰豆网上搜索。

贪吃蛇游戏设计毕业设计论文.docx

贪吃蛇游戏设计毕业设计论文

 

毕业设计

 

设计题目:

贪吃蛇游戏

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

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

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

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

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

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

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

作者签名:

日期:

年月日

学位论文版权使用授权书

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

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

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

作者签名:

日期:

年月日

导师签名:

日期:

年月日

贪吃蛇游戏

摘要

贪吃蛇游戏是一个深受人们喜爱的游戏,它能够让你在忙碌的工作中放松一下自己,游戏贪吃蛇就是在屏幕上画出蛇,同时随机地给出食物。

游戏者通过键盘操作控制贪吃蛇的移动,去吃食物,吃到后食物消失,然后再随机给出食物同时蛇的身体增长。

撞到墙壁或身体交叉蛇头撞到自己的身体,则游戏结束。

这个程序关键点是表示蛇的图形以及蛇的移动。

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

移动时必须从蛇头开始,所以蛇不能向相反的方向移动,也就是蛇尾不能改作蛇头。

如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时,由于没有清屏的原因,原来蛇的位置差一个单位,所以看起来蛇会多一节身体,所以将蛇的最后一节用背景色覆盖。

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

本程序实现的主要技巧在二维数组的应用上。

编写此游戏掌握了用C语言知识的了解,通过这次毕业设计,提高了我们的编程的水平。

关键词:

食物和蛇

 

Tanchishegame

Abstract

TanchishegameisaverypopulargameisthatitcanallowyoutorelaxatworkinabusythemselvesinthegameTanchiyiscreenispaintedsnakewhilerandomtogivefood.Tanchiyioperationalcontrolofthegamethroughkeyboardmovement,eatfood,aftereatingfooddisappeared,andthenrandomlygivenfoodandsnakephysicalgrowth.Hitthewallsorphysicalcross-snakehittheirphysical,thegameended.

Thekeypointisthattheproceduresofthesnakeandthesnakemobilegraphics.Usingasmallrectanglepiecesthatsnakesectionbody,thebodyofeachlongsection,addarectanglepieces,withtwosectionsthatsnakeheads.Movementmuststartfromthesnake,thesnakecannotbecontrarytothedirectionofmovementthatiscapablenotforsnakeheads.Ifwedonotbyanykeys,snakesthemselvesinthecurrentdirectionofeverything,whenthosegamesbyaneffectivedirectionkeys,snakeheadtowardsthedesignateddirectionmovements,stepmovementsectionofthebody,sowhentheeffectivedirectionkeys,toidentifythesnake'sposition,andthensnakebodywithsnakeheadsmovementgraphicrealizationfromthesnakeheadsnewlocationbeginningpaintedsnake,then,IntheabsenceoftheQingPingreasons,theoriginallocationofpoorsnakesinaflat,itappearsmorethanonesectionwillsnakephysical,thefinalsectionwillsnakewithbackgroundcolorcover.Theemergenceanddisappearanceoffoodplotsandcoverrectangleisarectanglepieces.

Themainachievementofthisprocedureintwo-dimensionalarrayoftechniquesapplied.PreparedthisgamemasteredbyClanguageknowledgeunderstanding,throughthisgraduationdesignandimproveourprogramminglevel.

Keywords:

Foodandsnakes

 

1引言

1.1游戏的发展历史

电脑游戏的诞生几乎是伴随着电脑的产生就开始了。

早在60年代人们还在使用最原始的大型计算机的时候,就有一小部分的程序员在开始开发一些小的游戏,只不过在当时,人们却把他们看成是在做有关计算机方面的研究而已。

由于当时硬件和软件条件方面的限制,这些游戏只能为一些比较高层的计算机相关人员所知晓。

到了1981年,也就是IBM公司推出了自己的第一款PC机之后,计算机开始进入了人们的日常生活当中。

在最近的一二十年里,计算机硬件和软件都得到了前所未有的发展,出现了一些好的游戏开发平台,人们可以简单快捷地进行游戏开发,32位操作系统,高速处理器等硬件的出现,也使游戏设计者不用因顾及一些其他的因素而不能尽情地投入到游戏开发之中。

到了信息时代的今天,各国都在大力加强自己的软件实力。

计算机游戏也成为了众多软件开发厂商的战略计划之一。

1.2游戏的特点

游戏作为当前比较流行的一种娱乐方式,它和其他方式相比,有自身的特点所在。

当然,当前来看,其他传统的娱乐方式,比如说:

电影,电视,广播等都是不错的选择,但是这些方式已经越来越不能够满足人们娱乐的高要求。

和游戏相比起来,这些传统的娱乐方式是单方向的,作为观众或者是听众的我们只能是简单的接受。

如同我们平常所说的通信方式一样,它只实现了单工,而不能进行全双工通信。

也就是说,我们只能一味的接收已经是别人做好的信息,而不能充分发挥自己的才智。

我们只能选择用耳朵听,用眼睛看。

但是游戏不同,我们在看,在听的同时,我们还可以自己动手,在游戏的过程中,玩家可以充分发挥自身的聪敏才智,毫无顾及的施展自己的才华。

我们在派遣自己的部队去攻打敌人的时候,我们需要考虑诸多方面的因素来想办法赢得战斗的胜利,我们可以根据自己的势力来选择是进攻还是防守。

2C语言的简介

2.1C语言的发展及背景

C语言是介于汇编语言和高级语言之间的语言,属于高级语言;是集汇编语言和高级语言的优点于一身的程序设计语言。

它的前身是“ALGOL”。

其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。

C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。

然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。

1987年美国标准化协会制定了C语言的国际标准,简称“ANSIC”,从此以后它便成为一种广泛使用的程序语言。

它兼备高级语言与低级语言的优点,属于一种中间语言;是一种结构化程序设计语言,非常适合结构化程序设计;有较丰富的数据类型、运算符以及函数供以选用;直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。

C语言以它的功能丰富、表达能力强、使用灵活、应用面广、目标程序效序高、可移植性好、能对硬件直接进行操作等优点愈来愈赢得人们的表睐。

2.2C语言的功能及特点

近年来,C语言无论在国内还是在国外都得到迅速的推广应用。

语言简洁、紧凑,使用方便、灵活。

运算符丰富。

灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

数据结构丰富,具有现代化语言的各种数据结构。

C的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。

具有结构化的控制语句(如if…else语句、while语句、do…while语句、switch语句、for语句)。

用函数作为程序的模块单位,便于实现程序的模块化。

C是理想的结构化语言,符合现代编程风格的要求。

语法限制不太严格,程序设计自由度大。

例如对数组下标越界不做检查,由程序编写者自己保证程序的正确。

对变量的类型使用比较灵活,例如整型量与字符型数据以及逻辑型数据可以通用。

C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

因此,C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。

C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。

生成的目标代码质量高,程序执行效率高。

一般只比汇编程序生成的目标代码效率低10%一20%。

(8)用C语言写的程序可移植性好(与汇编语言相比)。

基本上不做修改就能用于各种型号的计算机和各种操作系统。

2.3系统的开发环境

2.3.1TurboC的产生与发展

TurboC是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。

该公司相继推出了一套Turbo系列软件,如Turbo BASIC, TurboPascal,TurboProlog,这些软件很受用户欢迎。

该公司在1987年首次推出TurboC1.0产品,其中使用了全然一新的集成开发环境,即使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。

1988年,Borland公司又推出TurboC1.5版本,增加了图形库和文本窗口函数库等,而TurboC2.0则是该公司1989年出版的。

TurboC2.0在原来集成开发环境的基础上增加了查错功能,并可以在Tiny模式下直接生成.COM(数据、代码、堆栈处在同一64K内存中)文件。

还可对数学协处理器(支持8087/80287/80387等)进行仿真。

   Borland公司后来又推出了面向对象的程序软件包TurboC++,它继承发展TurboC2.0的集成开发环境,并包含了面向对象的基本思想和设计方法。

   1991年为了适用Microsoft公司的Windows3.0版本,Borland公司又将TurboC++作了更新,即TurboC的新一代产品BorlandcC++也已经问世了。

2.3.2TurboC2.0基本配置要求

   TurboC2.0可运行于IBM-PC系列微机,包括XT,AT及IBM兼容机。

此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。

支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。

2.3.3TurboC2.0内容简介

TurboC2.0有六张低密软盘(或两张高密软盘)。

下面对TurboC2.0的主要文件作一简单介绍:

    INSTALL.EXE   安装程序文件

    TC.EXE        集成编译

    TCINST.EXE    集成开发环境的配置设置程序

    TCHELP.TCH    帮助文件

    THELP.COM     读取TCHELP.TCH的驻留程序

    README        关于TurboC的信息文件

    TCCONFIG.EXE  配置文件转换程序

    MAKE.EXE      项目管理工具

    TCC.EXE       命令行编译

    TLINK.EXE     TurboC系列连接器

    TLIB.EXE      TurboC系列库管理工具

    C0?

.OBJ       不同模式启动代码

    C?

.LIB        不同模式运行库

    GRAPHICS.LIB  图形库

    EMU.LIB       8087仿真库

    FP87.LIB      8087库

    *.H           TurboC头文件

    *.BGI         不同显示器图形驱动程序

    *.C           TurboC例行程序(源文件)

其中:

上面的?

分别为:

    T        Tiny(微型模式)

    S        Small(小模式)

    C        Compact(紧凑模式)

    M        Medium(中型模式)

    L        Large(大模式)

    H        Huge(巨大模式)

2.3.4Turboc2.0的界面

2.3.5Turbro的特点

C语言系统很多,有些新系统的功能更强大。

但TURBOC环境有许多特点,在基本的C程序设计课程教学中被广泛使用。

本系统既简单又功能完整,开始使用需要理解的概念少,容易入门,特别适合初学者。

TURBOC系统对计算机要求低,在任何微机上都能很好运行,编译加工速度快,对于做程序练习和一般的程序开发都很合适。

另外,TURBOC的编程和调试环境也很完整,反映了集成化开发环境的特点。

掌握了这个程序开发工具的使用方法,不但掌握了一个实用的程序开发工具,也能为进一步学习使用其他编程工具打下很好的基础。

3游戏分析

3.1游戏的可行性分析

可行性分析(FeasibilityAnalysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

该系统的可行性分析包括以下几个方面的内容。

3.1.1技术上的可行性

技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。

我们所设计的贪吃蛇游戏,是以C语言作为本系统的开发工具,大量运用C语言中的图形库函数完成建图的过程以及算法的演示过程。

它兼备高级语言与低级语言的优点,属于一种中间语言。

它是面向结构化程序设计的语言,具有结构化的控制语句,以函数作为程序模块以实现程序的模块化,非常适合结构化程序设计。

它有较丰富的数据类型、运算符以及函数供以选用。

它直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。

它保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。

综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。

3.1.2运行上的可行性

本系统为一个小型的贪吃蛇游戏,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。

3.2需求分析

本程序为贪吃蛇游戏,想必大家都玩过这个游戏,程序源代码用TC2.0编译通过,需要图形驱动文件的支持,在TC2.0的集成环境中有.

本程序利用数据结构中的链表,来将蛇身连接,同时当蛇每吃到一个食物,及身体就会增长一节,程序会时刻将一些信息显示在屏幕上,包括所得分数,要吃的食物.另外,此游戏可能与CPU的速度有关系.

游戏有良好的人机界面,我们还可以自己动手,在游戏的过程中,玩家可以充分发挥自身的聪敏才智,毫无顾及的施展自己的才华。

4游戏设计

4.1游戏设计的思想

知识要点:

(1)数组元素为结构体的数组应用。

(2)全局变量应用。

(3)按键的处理。

(4)数组元素与蛇、食物的对应关系。

(5)图形方式。

采用现有的资源,先进的游戏开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力,提高游戏开发的水平和应用效果。

游戏要满足用户的需求,它作为当前比较流行的一种娱乐方式,它和其他方式相比,有自身的特点所在。

本程序实现的主要技巧在二维数组的应用上。

编写此游戏掌握了用C语言编程的技巧,通过游戏程序增加编程的兴趣,提高学生编程的水平。

同时,也为忙碌工作的人们提供了休闲娱乐的空间。

4.2游戏功能设计

游戏界面要清晰美观,一个矩形区作为游戏区域,在矩形区中有食物和贪吃蛇。

贪吃蛇用小方块表示,开始的时候蛇有2节,每吃到食物一次蛇身加长一节,蛇身最长可以达到200节。

食物也是用一个小方块表示,并且每次食物的位置是随机出现的。

游戏中使贪吃蛇尽可能的长,但不能使贪吃蛇撞到四周的墙壁,而且蛇的身体不能撞到一起,否则游戏结束。

4.3游戏设计方案

4.3.1总体设计方案

游戏贪吃蛇就是在屏幕上画出蛇,同时随机地给出食物。

游戏者通过键盘操作控制贪吃蛇的移动,去吃食物,吃到后食物消失,然后再随机给出食物同时蛇的身体增长。

画蛇的原理就是利用人眼的视觉效应先将蛇头向前移动一格,然后所有蛇身依次向前移动一格,最后用背景色覆盖。

这样在人眼看来好像蛇在向前移动。

食物的给出,首先需要产生一个随机数,然后通过这个随机数计算得到食物的横纵坐标,在屏上显示出来。

控制蛇的移动方向,然后根据按键改变蛇的移动方向。

4.3.2蛇和食物的设计方案

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

移动时必须从蛇头开始,所以蛇不能向相反的方向移动,也就是蛇尾不能改作蛇头。

表示食物和蛇的矩形块都设计为10*10个像素单位,食物的基本数据域为它所出现的位置,用x和y坐标表示,则矩形块用函数rectangle(x,y,x+10,y+10)或rectangle(x,y,x+10,y-10)画出。

由于每次只出现一个食物,而食物被吃掉后,才出现下一个食物,所以设定yes表示是否要出现食物的变量。

蛇的一节身体为一个矩形块,这样表示每个矩形块只需起点坐标x和y。

身体是不断增长的,所以用数组存放每一节的坐标,最大设定为N=200,node表示当前节数。

另外还需要保存蛇移动方向的变量direction和表示生命的变量life,一但life为1,则蛇死,游戏结束。

所以程序功能的实现就是数组的操作。

#defineN200

structFood

{

intx;/*食物的横坐标*/

inty;/*食物的纵坐标*/

intyes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

structsnake

{

intx[N]

inty[N]

intnode;/*蛇的节数*/

intdirection;/*蛇移动方向*/

intlife;/*蛇的生命,0活着,1死亡*/

}snake;

 

4.4游戏流程图

 

5个人设计

5.1游戏具体过程函数GamePlay()

这个函数是游戏的主要部分,难点在表示蛇的新位置并消除前一次的图形。

采用的方法是每次移动的时候从最后一节开始到倒数第二节(因蛇头为两节),将前一节的坐标赋值给后一节的坐标,移动后只要把最后一节用背景色去除即可,因为新位置0到n-1节还是要出现在画面上的。

然后蛇头按照方向键来更改位置。

另外,食物的随机出现要确保它的位置在10的倍数位置上,因为蛇的坐标都是以10为模的,这样的话就可以让蛇吃到,蛇吃到食物的判断是蛇头的坐标和食物的坐标相等。

其算法过程为:

(1)设置初始值。

为防止食物出现在一个位置上,要设置随机数发生器,真正产生随机数。

初始时,蛇只有蛇头,设定一个开始的方向。

(2)循环执行,直到按Esc键退出。

1)没有按键的情况下,循环执行。

如果没有食物,随机出现食物。

如果有食物,则显示食物。

蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到自己吃了自己,如果出现这两种情况之一,则蛇死,调用游戏结束函数,结束本次游戏,重新开始。

如果蛇吃到了食物,蛇的身体长一节,数组元素增加一个,身体节数、分数都进行相应的改变。

在新位置画出蛇。

2)如果有按键,则识别键值。

如果按键为Esc键则结束游戏。

程序运行结束;如果所按键为方向键。

则根据该键改变代表蛇方向的变量direction的值,要考虑相反方向键无效。

 

5.1游戏具体过程界面

5.3程序分析

/*玩游戏具体过程*/

voidGamePlay(void)

{

randomize();/*随机数发生器*/

food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/

snake.life=0;/*活着*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇头*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*节数*/

PrScore();/*输出得分*/

while

(1)/*可以重复玩游戏,压ESC键结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1