唐山学院毕业设计Word格式文档下载.docx

上传人:b****4 文档编号:7704334 上传时间:2023-05-08 格式:DOCX 页数:39 大小:171.15KB
下载 相关 举报
唐山学院毕业设计Word格式文档下载.docx_第1页
第1页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第2页
第2页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第3页
第3页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第4页
第4页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第5页
第5页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第6页
第6页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第7页
第7页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第8页
第8页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第9页
第9页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第10页
第10页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第11页
第11页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第12页
第12页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第13页
第13页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第14页
第14页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第15页
第15页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第16页
第16页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第17页
第17页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第18页
第18页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第19页
第19页 / 共39页
唐山学院毕业设计Word格式文档下载.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

唐山学院毕业设计Word格式文档下载.docx

《唐山学院毕业设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《唐山学院毕业设计Word格式文档下载.docx(39页珍藏版)》请在冰点文库上搜索。

唐山学院毕业设计Word格式文档下载.docx

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”。

其创始人是布朗·

卡尼汉和丹尼斯·

利奇。

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例行程序(源文件)

其中:

上面的?

分别为:

Tiny(微型模式)

Small(小模式)

Compact(紧凑模式)

Medium(中型模式)

Large(大模式)

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键结束*/

{

while(!

kbhit())/*在没有按键的情况下,蛇自己移动身体*/

if(food.yes==1)/*需要出现新食物*/

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!

=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

food.x++;

while(food.y%10!

=0)

food.y++;

food.yes=0;

/*画面上有食物了*/

}

if(food.yes==0)/*画面上有食物了就要显示*/

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

for(i=snake.node-1;

i>

0;

i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/

switch(snake.direction)

case1:

snake.x[0]+=10;

break;

case2:

snake.x[0]-=10;

cas

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2