C语言程序设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计论文
鸡西大学
08电气与信息工程系
班级:软件2班
姓名:范孝龙
设计题目:贪吃蛇
正文:
一、引言:
贪吃蛇这一游戏实训中初次接触,通过操作熟悉,觉知此游戏简单易行,操作方便,而且娱乐性较强,应该吸引了不少游戏的钟爱者人。这一款游戏紧紧地抓住了人们的心理,虽然简单,却起乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具,令人百玩不厌。
二、系统分析:
1)可行性分析:首先,贪吃蛇用C语言编程,有很好的技术可行性,在MYTC下也能顺利运行,可以说在技术方面,只要掌握代码编写知识,就不会有多大的问题。其次,贪吃蛇这类小游戏,还能够下载到手机上玩,所以,更容易为人们所接受,这就展现它的经济可行性也会不赖。再次,无论是电脑还是手机或游戏机,在操作上它都很简单,一学就懂,又证实了它的操作可行性。
2)需求分析:游戏是人们生活中不可或缺的,是一个人从小到大,真正伴随他成长的东西。游戏在娱乐中占有着很重要的地位,不论是一个玩具,还是一个能和伙伴一起开心的小游戏,都是能给我们留下很多美好的回忆。所以不论是什么样的游戏,只要它能迎合人们内心的某种需求,它的市场总会是好的。贪吃蛇,是个简单的小游戏,但却能给人以放松,让我们从繁重的日常生活中解脱出来,得到身心
的放松,现在的人,不管是已经工作的,还是还未进入社会的学生,都面临着很大的压力,而这样一款能让我们随时随地都能享受的游戏,其魅力还是不可估量的。
贪吃蛇,之所以取这样的名字,去用意还是很明显的。贪吃蛇其实并不贪,它只是人不断向前追求的象征。就像现代的人只有不断努力向前才能得到自己想要的。而食物也是随机出现的,就像现在社会存在的机会,而我们只有找好自己的目标才能成功。虽然现在市面上存在着各种各样的游戏版本,可是贪吃蛇其市场还是相当大的。因为它的特殊在于它能吸引人更深入,爱不释手。随着游戏速度不断加快,其刺激性也更强。
我觉得该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行,对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的,这样的小游戏刚好迎合了他们的需求。
三、设计目的:
进一步培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;针对C语言中的重点和难点内容进行训练,能够独立完成有一定工作量的程序设计任务,同时培养好的程序设计风格;掌握C语言的编程技巧和上机调试程序的方法;掌握程序设计的常用算法;加强对所学知识的巩固。
四、设计思想及其编码过程概述:
1)这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩
形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,原来蛇的位置会和新蛇的位置差一个单位,所以看起来蛇会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是矩形块原理2)该游戏的设计灵活便易,在运行过程中,设置了上下左右四个键为游戏的控制键,Esc为退出键。在不按键的情况下,蛇自动前移,不能自行改变路线。编码用1、2、3、4来表示上下左右四个方向,来判断蛇头的移动方向,用一个for循环使蛇的每个环节都能向前移动,这是贪吃蛇的关键算法。速度快慢可以根据需要自己调整,即(int gamespeed=50000;/*游戏速度自己调整*/)随着数字的增大,速度也会相应加快,也更具有挑战性。把食物设为一个结构体变量,纵横坐标能够变化,应用随机数发生器,因此食物能够随机出现,蛇的节数随着所吃食物的增多而不断加长。判断是否撞到自己,是从蛇的第四节开始的,因为蛇头有两节,第三节不可能拐过来,snake.life=表示活着,当撞墙时snake.life=1,break游戏就结束了。本游戏还有自动积分功能,可以给玩者直接显示成绩。下面一段语句是用来设开始画面围墙大小的:
/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)
的围墙*/
void DrawK(void)
{ /*setbkcolor(LIGHTGREEN);*/
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
for(i=50;i<=600;i+=10)/*画围墙*/
{ rectangle(i,40,i+10,49); /*上边*/
rectangle(i,451,i+10,460);/*下边*/}
for(i=40;i<=450;i+=10)
{ rectangle(50 rectangle(601,i,610,i+10);/*右边*/}}
,i,59,i+10); /*左边*/
同样,围墙的大小也可以调整,围墙的设置应与屏幕显示相适应。
五、心得体会:
玩者一时尽兴,设计需千种寻思,无论是那种游戏,只要是涉及到计算机编程的,都不会是很简单的,可谓是“谁知盘中餐,粒粒皆辛苦”啊,用C语言编游戏,不是一件容易的事。通过实训,我了解到,编程必须思维紧密,而且要具备一定的知识功底。经过自我检验,我个人能力方面的不足暴露无遗,实训中仅掌握了丁点的程序设计思想,但对编程技巧几无所知,程序设计的常用算法也不太了解。于此不足,有欠努力,今后我一定要做的更好。