ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:171.15KB ,
资源ID:7704334      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7704334.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(唐山学院毕业设计Word格式文档下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、Tanchishe game is a very popular game is that it can allow you to relax at work in a busy themselves in the game Tanchiyi screen is painted snake while random to give food. Tanchiyi operational control of the game through keyboard movement, eat food, after eating food disappeared, and then randomly

2、given food and snake physical growth. Hit the walls or physical cross-snake hit their physical, the game ended. The key point is that the procedures of the snake and the snake mobile graphics. Using a small rectangle pieces that snake section body, the body of each long section, add a rectangle piec

3、es, with two sections that snakeheads. Movement must start from the snake, the snake can not be contrary to the direction of movement that is capable not for snakeheads. If we do not by any keys, snakes themselves in the current direction of everything, when those games by an effective direction key

4、s, snake head towards the designated direction movements, step movement section of the body, so when the effective direction keys, to identify the snakes position, and then snake body with snakeheads movement graphic realization from the snakeheads new location beginning painted snake, then, In the

5、absence of the Qing Ping reasons, the original location of poor snakes in a flat, it appears more than one section will snake physical, the final section will snake with background color cover. The emergence and disappearance of food plots and cover rectangle is a rectangle pieces. The main achievem

6、ent of this procedure in two-dimensional array of techniques applied. Prepared this game mastered by C language knowledge understanding, through this graduation design and improve our programming level.Key words: Food and snakes1 引言1.1游戏的发展历史电脑游戏的诞生几乎是伴随着电脑的产生就开始了。早在60年代人们还在使用最原始的大型计算机的时候,就有一小部分的程序员

7、在开始开发一些小的游戏,只不过在当时,人们却把他们看成是在做有关计算机方面的研究而已。由于当时硬件和软件条件方面的限制,这些游戏只能为一些比较高层的计算机相关人员所知晓。到了1981年,也就是IBM公司推出了自己的第一款PC机之后,计算机开始进入了人们的日常生活当中。在最近的一二十年里,计算机硬件和软件都得到了前所未有的发展,出现了一些好的游戏开发平台,人们可以简单快捷地进行游戏开发,32位操作系统,高速处理器等硬件的出现,也使游戏设计者不用因顾及一些其他的因素而不能尽情地投入到游戏开发之中。到了信息时代的今天,各国都在大力加强自己的软件实力。计算机游戏也成为了众多软件开发厂商的战略计划之一。

8、 1.2游戏的特点游戏作为当前比较流行的一种娱乐方式,它和其他方式相比,有自身的特点所在。当然,当前来看,其他传统的娱乐方式,比如说:电影,电视,广播等都是不错的选择,但是这些方式已经越来越不能够满足人们娱乐的高要求。和游戏相比起来,这些传统的娱乐方式是单方向的,作为观众或者是听众的我们只能是简单的接受。如同我们平常所说的通信方式一样,它只实现了单工,而不能进行全双工通信。也就是说,我们只能一味的接收已经是别人做好的信息,而不能充分发挥自己的才智。我们只能选择用耳朵听,用眼睛看。但是游戏不同,我们在看,在听的同时,我们还可以自己动手,在游戏的过程中,玩家可以充分发挥自身的聪敏才智,毫无顾及的施

9、展自己的才华。我们在派遣自己的部队去攻打敌人的时候,我们需要考虑诸多方面的因素来想办法赢得战斗的胜利,我们可以根据自己的势力来选择是进攻还是防守。2 C语言的简介2.1 C语言的发展及背景C 语言是介于汇编语言和高级语言之间的语言,属于高级语言; 是集汇编语言和高级语言的优点于一身的程序设计语言。它的前身是“ALGOL”。其创始人是布朗W卡尼汉和丹尼斯M利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。

10、它兼备高级语言与低级语言的优点,属于一种中间语言;是一种结构化程序设计语言,非常适合结构化程序设计;有较丰富的数据类型、运算符以及函数供以选用;直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。C语言以它的功能丰富、表达能力强、使用灵活、应用面广、目标程序效序高、可移植性好、能对硬件直接进行操作等优点愈来愈赢得人们的表睐。2.2 C语言的功能及特点近年来,C语言无论在国内还是在国外都得到迅速的推广应用。语言简洁、紧凑,使用方便、灵活。运算符丰富。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。数据结构丰富,具有现代化语言的各种数据结构。C的数据类型有整型、实型、字符型、数组

11、类型、指针类型、结构体类型、共用体类型等。具有结构化的控制语句(如ifelse语句、while语句、dowhile语句、switch语句、for语句)。用函数作为程序的模块单位,便于实现程序的模块化。C是理想的结构化语言,符合现代编程风格的要求。语法限制不太严格,程序设计自由度大。例如对数组下标越界不做检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如整型量与字符型数据以及逻辑型数据可以通用。C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C语言的

12、这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。生成的目标代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效率低10一20。(8)用C语言写的程序可移植性好(与汇编语言相比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。2.3 系统的开发环境2.3.1 Turbo C 的产生与发展 Turbo C 是美国Borland 公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。该公司在1987年首次推

13、出Turbo C 1.0 产品, 其中使用了全然一新的集成开发环境, 即使用了一系列下拉式菜单, 将文本编辑、程序编译、连接以及程序运行一体化, 大大方便了程序的开发。1988 年, Borland 公司又推出Turbo C1.5版本, 增加了图形库和文本窗口函数库等, 而 Turbo C 2.0 则是该公司1989年出版的。Turbo C2.0在原来集成开发环境的基础上 增加了查错功能, 并可以在Tiny模式下直接生成.COM (数据、代码、堆栈处在同一 64K 内存中) 文件。还可对数学协处理器 (支持8087/80287/80387等)进行仿真。 Borland 公司后来又推出了面向对象

14、的程序软件包Turbo C+, 它继承发展 Turbo C 2.0 的集成开发环境, 并包含了面向对象的基本思想和设计方法。 1991年为了适用Microsoft 公司的Windows 3.0 版本, Borland 公司又将Turbo C+ 作了更新, 即Turbo C 的新一代产品Borlandc C+也已经问世了。2.3.2 Turbo C 2.0基本配置要求 Turbo C 2.0可运行于IBM-PC系列微机, 包括XT, AT及IBM 兼容机。 此时要求 DOS 2.0或更高版本支持, 并至少需要448K的RAM, 可在任何彩、单色80列监视器上 运行。支持数学协处理器芯片, 也可进

15、行浮点仿真, 这将加快程序的执行。2.3.3 Turbo C 2.0内容简介 Turbo C 2.0有六张低密软盘(或两张高密软盘)。下面对Turbo C 2.0的主要文 件作一简单介绍: INSTALL.EXE 安装程序文件 TC.EXE 集成编译 TCINST.EXE 集成开发环境的配置设置程序 TCHELP.TCH 帮助文件 THELP.COM 读取TCHELP.TCH的驻留程序 README 关于Turbo C的信息文件 TCCONFIG.EXE 配置文件转换程序 MAKE.EXE 项目管理工具 TCC.EXE 命令行编译 TLINK.EXE Turbo C系列连接器 TLIB.EXE

16、 Turbo C系列库管理工具 C0?.OBJ 不同模式启动代码 C?.LIB 不同模式运行库 GRAPHICS.LIB 图形库 EMU.LIB 8087仿真库 FP87.LIB 8087库 *.H Turbo C头文件 *.BGI 不同显示器图形驱动程序 *.C Turbo C例行程序(源文件) 其中: 上面的?分别为: T Tiny(微型模式) S Small(小模式) C Compact(紧凑模式) M Medium(中型模式) L Large(大模式) H Huge(巨大模式)2.3.4 Turbo c2.0的界面2.3.5 Turbro的特点C语言系统很多,有些新系统的功能更强大。但

17、TURBO C环境有许多特点,在基本的C程序设计课程教学中被广泛使用。本系统既简单又功能完整,开始使用需要理解的概念少,容易入门,特别适合初学者。TURBO C系统对计算机要求低,在任何微机上都能很好运行,编译加工速度快,对于做程序练习和一般的程序开发都很合适。另外,TURBO C的编程和调试环境也很完整,反映了集成化开发环境的特点。掌握了这个程序开发工具的使用方法,不但掌握了一个实用的程序开发工具,也能为进一步学习使用其他编程工具打下很好的基础。3游戏分析3.1 游戏的可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否

18、具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。3.1.1技术上的可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。我们所设计的贪吃蛇游戏,是以C语言作为本系统的开发工具,大量运用C语言中的图形库函数完成建图的过程以及算法的演示过程。它兼备高级语言与低级语言的优点,属于一种中间语言。它是面向结构化程序设计的语言,具有结构化的控制语句,以函数作为程序模块以实现程序的模块化,非常

19、适合结构化程序设计。它有较丰富的数据类型、运算符以及函数供以选用。它直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。它保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。3.1.2运行上的可行性本系统为一个小型的贪吃蛇游戏,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。3.2 需求分析本程序为贪吃蛇游戏,想必大家都玩过这个游戏,程序源代码用TC2.0编译通过,需要图形驱动文件的支持,在TC2.0的集成环境中有.本程

20、序利用数据结构中的链表,来将蛇身连接,同时当蛇每吃到一个食物,及身体就会增长一节,程序会时刻将一些信息显示在屏幕上,包括所得分数,要吃的食物.另外,此游戏可能与CPU的速度有关系.游戏有良好的人机界面,我们还可以自己动手,在游戏的过程中,玩家可以充分发挥自身的聪敏才智,毫无顾及的施展自己的才华。4 游戏设计4.1游戏设计的思想知识要点: (1)数组元素为结构体的数组应用。(2)全局变量应用。(3)按键的处理。(4)数组元素与蛇、食物的对应关系。(5)图形方式。采用现有的资源,先进的游戏开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力,提高游戏开发的水平和应用效果。游戏要满足用户的

21、需求,它作为当前比较流行的一种娱乐方式,它和其他方式相比,有自身的特点所在。本程序实现的主要技巧在二维数组的应用上。编写此游戏掌握了用C语言编程的技巧,通过游戏程序增加编程的兴趣,提高学生编程的水平。同时,也为忙碌工作的人们提供了休闲娱乐的空间。4.2游戏功能设计游戏界面要清晰美观,一个矩形区作为游戏区域,在矩形区中有食物和贪吃蛇。贪吃蛇用小方块表示,开始的时候蛇有2节,每吃到食物一次蛇身加长一节,蛇身最长可以达到200节。食物也是用一个小方块表示,并且每次食物的位置是随机出现的。游戏中使贪吃蛇尽可能的长,但不能使贪吃蛇撞到四周的墙壁,而且蛇的身体不能撞到一起,否则游戏结束。4.3游戏设计方案

22、4.3.1总体设计方案游戏贪吃蛇就是在屏幕上画出蛇,同时随机地给出食物。画蛇的原理就是利用人眼的视觉效应先将蛇头向前移动一格,然后所有蛇身依次向前移动一格,最后用背景色覆盖。这样在人眼看来好像蛇在向前移动。食物的给出,首先需要产生一个随机数,然后通过这个随机数计算得到食物的横纵坐标,在屏上显示出来。控制蛇的移动方向,然后根据按键改变蛇的移动方向。4.3.2蛇和食物的设计方案表示食物和蛇的矩形块都设计为10*10个像素单位,食物的基本数据域为它所出现的位置,用x和y坐标表示,则矩形块用函数rectangle(x,y,x+10,y+10)或rectangle(x,y,x+10,y-10)画出。由于

23、每次只出现一个食物,而食物被吃掉后,才出现下一个食物,所以设定yes表示是否要出现食物的变量。蛇的一节身体为一个矩形块,这样表示每个矩形块只需起点坐标x和y。身体是不断增长的,所以用数组存放每一节的坐标,最大设定为N=200,node表示当前节数。另外还需要保存蛇移动方向的变量direction和表示生命的变量life,一但life为1,则蛇死,游戏结束。所以程序功能的实现就是数组的操作。#define N 200struct Food int x; /*食物的横坐标*/ int y; /*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/food;/*食物的结构体*/stru

24、ct snakeint x Nint y Nint node; /*蛇的节数*/int direction; /*蛇移动方向*/int life; /*蛇的生命,0活着,1死亡*/snake;4.4游戏流程图5 个人设计5.1游戏具体过程函数GamePlay()这个函数是游戏的主要部分,难点在表示蛇的新位置并消除前一次的图形。采用的方法是每次移动的时候从最后一节开始到倒数第二节(因蛇头为两节),将前一节的坐标赋值给后一节的坐标,移动后只要把最后一节用背景色去除即可,因为新位置0到n-1节还是要出现在画面上的。然后蛇头按照方向键来更改位置。另外,食物的随机出现要确保它的位置在10的倍数位置上,因

25、为蛇的坐标都是以10为模的,这样的话就可以让蛇吃到,蛇吃到食物的判断是蛇头的坐标和食物的坐标相等。 其算法过程为:(1)设置初始值。为防止食物出现在一个位置上,要设置随机数发生器,真正产生随机数。初始时,蛇只有蛇头,设定一个开始的方向。(2)循环执行,直到按Esc键退出。1)没有按键的情况下,循环执行。如果没有食物,随机出现食物。如果有食物,则显示食物。蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到自己吃了自己,如果出现这两种情况之一,则蛇死,调用游戏结束函数,结束本次游戏,重新开始。如果蛇吃到了食物,蛇的身体长一节,数组元素增加一个,身体节数、分数都进行相应的改变。在新位置画出蛇。2)

26、如果有按键,则识别键值。如果按键为Esc键则结束游戏。程序运行结束;如果所按键为方向键。则根据该键改变代表蛇方向的变量direction的值,要考虑相反方向键无效。5.1游戏具体过程界面5.3程序分析/*玩游戏具体过程*/void GamePlay(void) randomize();/*随机数发生器*/ food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ snake.life=0;/*活着*/ snake.direction=1;/*方向往右*/ snake.x0=100;snake.y0=100;/*蛇头*/ snake.x1=110;snake.y1=100; sna

27、ke.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;i0;i-)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) case 1:snake.x0+=10;break; case 2: snake.x0-=10; cas

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

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