基于C语言的贪吃蛇游戏论文
贪吃蛇MFC的VC++编辑毕业设计论文

目录第1章需求分析 (2)第2章游戏设计 (2)2.1 游戏介绍 (2)2.2 游戏结构 (2)2.2.1控制面板结构............................................. 错误!未定义书签。
2.2.2贪吃蛇行动指令系统逻辑流程设计......... 错误!未定义书签。
第3章游戏详细设计与实现 .. (5)3.1.定义蛇和食物3.2蛇形和食物绘制3.3.开始游戏暂停游戏继续游戏退出游戏3.4.初始化界面3.5.蛇在行走的运动,蛇头方向,吃食物判定,蛇身变长,游戏结束等判定第4章编码与调试 (13)第5章系统使用手册 (13)第6章总结 (13)第1章需求分析贪吃蛇是一款老少皆宜的益智类竞技游戏,操作简单广受大众喜爱,因程序简易模式多样支持多平台而被我们选为本次课设题目,我们将基于MFC的VC++编辑。
第2章游戏设计2.1 游戏介绍本游戏讲述了一只可怜的像素蛇snake,被两个可怕的猥琐怪蜀黍囚禁在一个凄凉的幽闭空间中不停追逐像素果子的故事。
在幽闭空间中每当snake碰撞到像素果子时就会伸长而且移动速度会随之变快,当snake碰触到自己身体或四壁时game over。
1. 控制面板功能(1)开始游戏;(2)暂停游戏;(3)继续游戏;(4)退出游戏;2. 游戏功能(1)snake初始位置,初始移动;(2)方向移动snake;(3)果子随机出现;(4)snake吃掉像素果子后伸长;(5)果子再生;(6)snake碰撞四壁以及身体后死亡;2.2 游戏结构整个软件根据游戏需求分析,可得出系统控制面板结构图和snake程序整体调用关系流程图。
2.2.1 控制面板结构有操作需制作控制板结构来控制游戏控制面板结构图如下所示图2.1 控制面板结构图2.2.2 贪吃蛇行动指令系统逻辑流程设计分析贪吃蛇游戏功能以及操作后得出贪吃蛇行动逻辑方案,按照方案编写程序函数以及构造程序逻辑流程图主要运行函数以及逻辑流程图如下:表2.2 主要函数表图2.3 贪吃蛇行动逻辑流程图第3章游戏细设计与实现我们将游戏的制作重点放在实现snake的各种行动指令以及实现snake的伸长和果实的随机出现3.1游戏运行中的设计与实现1.定义蛇和食物开始定义游戏中的蛇与食物两个单位struct Snake{ int x,y;int len;int direct;}Snake[50];struct Food{int x;int y;int isfood;}Food;2蛇形和食物绘制void CSNAKEView::OnDraw(CDC* pDC){CSNAKEDoc* pDoc = GetDocument();ASSERT_V ALID(pDoc);// TODO: add draw code for native data hereCBrush backBrush(RGB(100,100,0));CBrush* pOldBrush = pDC->SelectObject(&backBrush);CRect rect;pDC->GetClipBox(&rect);pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(),PATCOPY);pDC->SelectObject(pOldBrush);3.开始游戏暂停游戏继续游戏退出游戏游戏中的各菜单功能的设计与实现(1)Continue菜单void CSNAKEView::OnContinue(){// TODO: Add your command handler code hereSetTimer(1,10,NULL);}(2)Exit菜单void CSNAKEView::OnExit(){// TODO: Add your command handler code here AfxMessageBox("退出游戏...");}(3)Start菜单void CSNAKEView::OnStart(){// TODO: Add your command handler code here SetTimer(1,3000,NULL);AfxMessageBox("3秒后开始游戏!"); OnInitialUpdate();}(4)Stop菜单void CSNAKEView::OnStop(){// TODO: Add your command handler code here KillTimer(1);AfxMessageBox("暂停游戏...");}4.初始化界面void CSNAKEView::OnInitialUpdate(){CView::OnInitialUpdate();Snake[0].x=10;Snake[0].y=10;Snake[1].x=11;Snake[1].y=10;Snake[2].x=12;Snake[2].y=10;Snake[0].direct=3;Snake[0].len=3;Food.isfood=1;// TODO: Add your specialized code here and/or call the base class }5.蛇在行走的运动,蛇头方向,吃食物判定,蛇身变长,游戏结束等判定我们将蛇的一系列运动写在一个函数中,此函数用来实现蛇的各种行动以及各种判定void CSNAKEView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultCDC *pDC=GetDC();CString soure;if(Snake[0].len==2)SetTimer(1,370,NULL);if(Snake[0].len==3)SetTimer(1,270,NULL);if(Snake[0].len==6)SetTimer(1,200,NULL);if(Snake[0].len==9)SetTimer(1,100,NULL);soure.Format("得分:%d!",(Snake[0].len-3)*10);//撞界判断if(Snake[0].x*20<=37||Snake[0].y*20<=37||Snake[0].x*20>=462||Snake[0].y*20>=46 2){KillTimer(1);AfxMessageBox(soure);// s=0;}//蛇身相撞判断if(Snake[0].len>3)for(int sn=Snake[0].len-1;sn>0;sn--){if(Snake[0].x*20==Snake[sn].x*20&&Snake[0].y*20==Snake[sn].y*20){KillTimer(1);AfxMessageBox(soure);// s=0;}}///////////////////////////////////////////////////////////////////////////pDC->SelectStockObject(WHITE_PEN);pDC->Rectangle(Snake[Snake[0].len-1].x*20,Snake[Snake[0].len-1].y*20,(Snake[Sn ake[0].len-1].x+1)*20,(Snake[Snake[0].len-1].y+1)*20);for(int i=Snake[0].len-1;i>0;i--){Snake[i].x=Snake[i-1].x;Snake[i].y=Snake[i-1].y;}//行走方向判断if(Snake[0].direct==1)Snake[0].y--;if(Snake[0].direct==2)Snake[0].y++;if(Snake[0].direct==3)Snake[0].x--;if(Snake[0].direct==4)Snake[0].x++;pDC->SelectStockObject(BLACK_PEN);CBrush DrawBrush=(RGB(100,100,100));CBrush *Drawbrush=pDC->SelectObject(&DrawBrush);pDC->Rectangle(Snake[0].x*20,Snake[0].y*20,(Snake[0].x+1)*20,(Snake[0].y+1)*2 0);pDC->SelectObject(DrawBrush);//判断吃豆的条件,撞到就吃if(Snake[0].x*20==Food.x*20&&Snake[0].y*20==Food.y*20){Snake[0].len++;Food.isfood=1;Snake[Snake[0].len-1].x=Snake[Snake[0].len-2].x;Snake[Snake[0].len-1].y=Snake[Snake[0].len-2].y;}//如果食物被吃了就生成if(Food.isfood==1){srand((unsigned)time(NULL));do{for(int isfo=Snake[0].len-1;isfo>=0;isfo--)if(Snake[0].x*20==Snake[isfo].x*20&&Snake[0].y*20==Snake[isfo].y*20) {Food.x=rand()%25;Food.y=rand()%25;}}while(Food.x*20<70||Food.y*20<70||Food.x*20>430||Food.y*20>430);pDC->Rectangle(Food.x*20,Food.y*20,(Food.x+1)*20,(Food.y+1)*20);Food.isfood=0;}CView::OnTimer(nIDEvent);}第4章编码与调试在上一章节中已经分模块给出了核心代码,则在此不需再给出代码,可从系统在编码实现过程中遇到的主要问题及其解决方法在此罗列。
c语言程序贪吃蛇课程设计报告范文

高级语言程序设计课程设计报告Experiment Designing reporter课程名称:高级语言程序设计英文名称 : C Program Experiment Designing专业:自动化 111学号: XXX姓名: XXX指导教师: XXX日期: 2012 年 6月 17日至 2011 年6 月 20 日山东工商学院信电学院山东工商学院信电学院自动111班第一组“贪吃蛇课程设计报告“一:课程设计内容程序功能介绍贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。
设计思路我们小组称设计本次课题——贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”:第一步:寻找到一个真正可以运行的已用C编好的贪吃蛇。
因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。
所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。
第二步:运行游戏并了解游戏程序。
我们认为,只有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。
同样重要的是了解游戏程序。
因为只有看懂了程序,才能实现对他的改编,才能游刃有余。
第三步:寻找模块并分类,而后进行改编。
寻找到你想要改变的游戏内容的控制模块,比如,我想要增加一堵墙,那第一页共十六页自动化 111么就应该找到void DrawK(void){setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=200;i<=500;i+=10)rectangle(i,200,i+10,209);}然后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块……….并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。
贪吃蛇游戏开发论文设计

MFC应用开发技术贪吃蛇游戏开发学院:人民武装学院专业:计算机工程与技术班级: 11 维护学号: 1120070257 学生姓名:胡桥林指导教师:黄顺强摘要本设计实现了一个简单的贪食蛇小游戏,该游戏不仅实现了简单的游戏操作功能,还实现了灵活的运作功能,而且具有简洁大方的图文外观。
此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,给玩家一个容易有趣的游戏。
本系统开发平台为Windows XP,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。
关键词:程序设计;计算器;MFC;按钮控件目录第一章游戏说明 (4)1.1 功能描述 (4)1.2 VC++6.0 的介绍 (4)第二章 MFC的的概述 (5)2.1 MFC的介绍 (5)2.2 类的介绍 (5)第三章总体设计说明 (7)3.1 设计思路 (7)3.2 程序框图 (7)3.3 数据结构 (9)3.4 主要算法 (10)第四章代码实现 (11)4.1 随机放置食物 (11)4.2 初始化数据 (11)4.3 方向键控制蛇的运动方向 (13)第五章运行结果 (17)5.1 初始界面 (17)5.2 开始游戏时的界面 (17)5.3 游戏运行时界面 (18)5.4 游戏结束 (18)总结 (20)致谢 (21)参考文献 (22)第一章游戏说明贪食蛇是一个深受大众喜爱的简单游戏,玩家通过按键上的四个光标控制蛇的上下左右四个方向移动,蛇头碰撞到食物则表示食物被蛇吃掉,这时蛇的身长长一节,接着出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或者身体交叉蛇头撞到自己的身体游戏结束游戏运行环境:设计环境:Microsoft Windows XP开发工具:Visual C++ 6.0运行环境:Microsoft Windows XP及以上版本1.1 功能描述游戏规则如下:●点击游戏->开始菜单游戏开始;●通过方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束;●点击游戏->暂停按钮,暂停游戏;点击游戏->继续菜单,继续游戏;●点击设置->难度菜单,设定游戏难易程度;●点击游戏->结束菜单退出游戏。
学年论文-C语言贪吃蛇游戏

基于C语言的贪吃蛇游戏摘要:贪吃蛇游戏是受广大人群喜爱的一款游戏,由传统模式,迷宫模式,和各种障碍模式。
本游戏是要求为:一条蛇在封密的围墙内,在围墙内随机出现一个食物。
通过按键盘上的四个光标控键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉。
如果蛇在移动过程中,撞到墙壁或蛇头撞到自己身体游戏结束。
关键词: 循环,分支,子函数的调用,链表,接口,子函数调用C-based Snake gamesAbstract:Snake game is popular with the crowd favorite game from the traditional model, the maze pattern, anda variety of obstacles mode.The game is called for: a snake sealed in the walls, the walls appear randomly in a food. On the keyboard bypressing four cursor control keys to control the snake to move up and down four, smugglers hit the food, that foodis eaten by a snake, then a snake's body length, taking into account the 10 points, then to food, waiting to be eatenby a snake. If the snake on the move, hit the wall or the end of the game snake hit his body.Keywords:C language,Snake引言随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界.人们不在拘泥于一小块天地.加班,出差成了现代人不可避免的公务.而此时一款可以随时随地娱乐的游戏成了必需品.在手机和电脑成为人们日用品的社会,一款能在其上能便捷运行的游戏成为买家的参考点.现在我们所要设计的这一款基于C语言的游戏——贪吃蛇,就是满足以上要求而设计出来的,希望能给玩家带来娱乐.贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,吸引了不少人.这一款游戏紧紧地抓住了人们的心理,虽然简单,却起乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具.1 开发工具《C/C++程序设计学习与试验系统》该系统继承了Turbo C2.0/C++3.0、GCC、Visua C++6.0这四种常见的编译器,可以很好满足目前主流的C语言教材的实验需求。
贪吃蛇课程设计论文c

贪吃蛇课程设计论文c一、教学目标本课程的教学目标是使学生掌握贪吃蛇的基本概念、算法和编程技巧。
具体包括:1.知识目标:学生能够理解贪吃蛇游戏的原理和基本算法,了解其背后的数学和计算机科学知识。
2.技能目标:学生能够使用编程语言实现一个简单的贪吃蛇游戏,能够对游戏进行调试和优化。
3.情感态度价值观目标:通过学习贪吃蛇,学生能够培养对计算机科学的兴趣和热情,提高自我学习和解决问题的能力。
二、教学内容本课程的教学内容主要包括贪吃蛇的基本概念、算法和编程实现。
具体包括:1.贪吃蛇的基本概念:介绍贪吃蛇游戏的起源、规则和特点。
2.贪吃蛇的算法:讲解贪吃蛇游戏的算法原理,包括蛇的移动、食物的生成和碰撞检测等。
3.贪吃蛇的编程实现:通过编程语言实现一个简单的贪吃蛇游戏,包括游戏循环、用户输入和游戏逻辑等。
三、教学方法本课程的教学方法主要包括讲授法、讨论法和实验法。
具体包括:1.讲授法:通过讲解贪吃蛇的基本概念和算法,使学生掌握相关知识。
2.讨论法:通过分组讨论和分享,引导学生深入思考和探索贪吃蛇游戏的实现方法。
3.实验法:通过编程实践,使学生亲手实现一个简单的贪吃蛇游戏,提高其编程能力和问题解决能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体包括:1.教材:提供相关章节的学习资料,包括贪吃蛇的基本概念、算法和编程实现。
2.参考书:提供更深入的计算机科学知识和编程技巧,供学生自主学习和参考。
3.多媒体资料:通过视频、动画等形式,生动展示贪吃蛇游戏的原理和实现过程。
4.实验设备:提供计算机和编程环境,让学生能够实际操作和实验贪吃蛇游戏的编程实现。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现:通过观察学生在课堂上的参与度、提问和回答问题的情况,评估学生的学习态度和理解程度。
2.作业:布置相关的编程练习,评估学生的编程能力和对贪吃蛇知识的理解。
贪吃蛇毕业设计论文

贪吃蛇毕业设计论文贪吃蛇毕业设计论文在计算机科学领域中,贪吃蛇游戏是一个经典的案例,用于教授和研究各种算法和数据结构。
它是一款简单而又富有挑战性的游戏,玩家通过控制一条蛇的移动,吃掉食物,同时避免碰到自己的身体或边界。
贪吃蛇游戏的设计和实现涉及到许多计算机科学的基本概念和技术,包括图形绘制、用户输入、碰撞检测等等。
本篇论文将探讨贪吃蛇游戏的设计和实现过程,并介绍一些有趣的扩展功能和算法。
首先,我们将讨论游戏的基本设计思路和目标。
其次,我们将介绍游戏的图形界面和用户交互。
最后,我们将探讨一些扩展功能和算法,例如自动寻路和难度调节。
首先,我们需要明确贪吃蛇游戏的设计目标。
贪吃蛇游戏的核心目标是让玩家蛇吃到尽可能多的食物,同时避免碰到自己的身体或边界。
为了达到这个目标,我们需要设计一个直观而又富有挑战性的游戏界面,并提供简单而又灵活的用户交互方式。
其次,我们需要实现游戏的图形界面和用户交互。
在贪吃蛇游戏中,我们通常使用一个二维的网格来表示游戏界面,每个格子可以是空白、蛇身或食物。
我们可以使用图形库来绘制这个网格,并实现蛇的移动和食物的生成。
同时,我们还需要处理用户的输入,例如通过键盘控制蛇的移动方向。
接下来,我们可以考虑一些有趣的扩展功能和算法。
一个常见的扩展功能是增加难度调节,使得游戏可以逐渐变得更加困难。
我们可以通过增加蛇的移动速度、减少食物的生成频率等方式来实现难度调节。
另一个有趣的扩展功能是自动寻路算法,可以让蛇自动找到最优的吃食物路径。
这可以通过使用搜索算法,例如广度优先搜索或A*算法来实现。
在设计和实现贪吃蛇游戏的过程中,我们还需要考虑一些性能优化和错误处理的问题。
例如,当蛇碰到自己的身体或边界时,游戏应该结束并显示得分。
此外,我们还需要考虑如何处理大规模的游戏界面和复杂的用户输入,以确保游戏的性能和可靠性。
综上所述,贪吃蛇游戏是一个经典的案例,用于教授和研究各种算法和数据结构。
在设计和实现贪吃蛇游戏的过程中,我们需要考虑游戏的基本设计思路和目标,实现游戏的图形界面和用户交互,并探讨一些有趣的扩展功能和算法。
(完整版)基于C语言的贪吃蛇游戏开发与设计毕业论文

毕业设计说明书(论文)题目:基于C语言的贪吃蛇游戏开发与设计毕业设计说明书(论文)中文摘要毕业设计说明书(论文)外文摘要目录前言 (1)第一章概述………………………………………………………………………41.1中国手机游戏产业现状 (4)1.2中国手机游戏的产业局势及其种类的多元化 (5)1.3中国手机游戏的未来展望 (7)第二章开发工具的简介 (9)2.1 Visual C++6.0简介 (9)2.2 Visual C++6.0安装 (10)2.3 Visual C++ 6.0开发过程 (12)第三章需求分析 (13)3.1可行性分析 (13)3.2 功能性分析 (13)第四章概要设计 (16)4.1功能介绍 (16)4.2概要设计图 (16)第五章详细设计 (18)5.1程序设计分析 (18)5.2主要函数 (19)5.3主要代码 (19)5.4其他函数代码 (30)第六章运行与测试 (35)6.1 运行程序 (35)6.2程序的调试与测试 (37)第七章结论 (40)致谢…………………………………………………………………………………42参考文献 (43)附录A (44)前言C语言是目前世界上流行、使用最广泛的高级程序设计语言。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
常用的编译软件有Microsoft Visual C++,Borland C++,WatcomC++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等......C语言的发展历史C语言的发展颇为有趣。
贪吃蛇实验报告论文

注意一下:为了防止编译时文件拷贝到其他文件盘的根目录下导致使用绝对位置而打不开文件,所以贴图和背景音乐都使用的是相对位置。
学生资源提供了一个
backmusic.wma的文件:
2.
将蛇身体转化为行列坐标,每个节点为20X20:
遍历输出蛇身体,默认为红色,蛇头居中加一个黄色的圆圈作为眼睛:
tail=(snake*)malloc(sizeof(snake));
tail->left=startCol*20;
tail->top=(startRow+i+1)*20;
tail->right=(startCol+1)*20;
tail->bottom=(startRow+i+2)*20;
p->next=tail;
for(i=0;i<ROWS;i++)
{
left=X;
right=left+20;
for(j=0;j<COLS;j++)
{
if(map[i][j]==1&&i==0)
{
putimage(left,top,&imgtop);
}
if(map[i][j]==1&&i==(ROWS-1))
{
putimage(left,top,&imgbottom);
inty=(p->top+p->bottom)/2;
setfillcolor(YELLOW);
fillcircle(x,y,2);
}
p=p->next;
}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3 应用环境
操作系统 Windows XP Windows Vista Windows’7
4 / 14
2.游戏程序设计
2.1 程序功能:
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个 食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物, 则食物被吃掉,蛇身体长一节,同时记时,接着又出现食物,等待蛇来吃,如果 蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
2.2 设计思想
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节 身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开 始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键, 蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向 移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然 后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没 有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节 身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆 盖矩形块。食物的出现与消失也是画矩形块和覆盖矩形块。
2 / 14
摘要:近年来,随着通信技术的高速发展,移动网络和移动终端性能的不断提高
与完善,以及手机、电脑的高普及率,使得人们对终端系统应用开发的需求在不端 增大,贪吃蛇游戏是受广大人群喜爱的一款游戏,贪吃蛇的设计比较复杂,在这 个游戏设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个 游戏的开发中,还要应用 c 语言的图形库函数。本文基于 c 语言,在 Microsoft Visual C++6.0 下实现需要用图形驱动文件的支持。游戏所以操作均通过键盘完 成,操作简便。
学校代码 分类号
学号 密级
本科学年论文
基于 C 语言的贪吃蛇游戏
学院、系 专业名称 年级 学生姓名 指导教师
2012 年 10 月 10 日
1 / 14
基于 C 语言的贪吃蛇游戏
目录
摘要:................................................................................................................................ 3 关键词................................................................................................................................ 3 引言:................................................................................................................................ 3 1.1 课题要求...................................................................................................................... 4
的特殊在于吸引人更深入。随着游戏速度不断加快,其刺激也更强。可以说该游
戏的优势在于它的简单易行,不论是手机,还是小游戏机。都能很快顺利的运行。
对于在外忙碌的人,不可能花费大量的时间在娱乐上,大型游戏是行不通的。这
样的小游戏刚好迎合他们的需求。
3 / 14
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目是为了将自己的所学知识 加以运用,我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质 和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践 和实际的项目中提高自己的编程能力,通过游戏程序设计,提高编程兴趣与编程 思路,巩固 C 语言中所学的知识,合理的运用资料,实现理论与实际相结合。
5 / 14
食物有个绿色通道。但是在某天的下午,它咬到了自己,它才想起自己是一条毒 蛇,于是晕死过去(不是毒死);又或者它往食物冲锋的时候,它失去控制,撞 到了墙上。
为了便于理解,定义两个结构体:食物与蛇。 整个游戏可分为四个步骤:
第一步,出现食物; 第二步,蛇不停运动; 第三步,检查蛇是撞到自己或墙壁;由第四步起游戏有两条支线(A、B): 第四步 A,蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作; 第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食 物消失; 第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方 向; 第七步,第二轮循环的第一步,重复第一轮的步骤; 第四步 B,蛇碰到自己或墙壁,终止游戏。
1.1 课题要求
(1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联 系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序 正确,并且能正常运行; (4).完成课程设计报告。
1.2 课题研究工具:
6 / 14
2.3.1 设计流程图
开始 游戏初始化界面
是
蛇行进方向 为按键方
游戏开始运行 按键这选择
关键词:函数 循环 结构体
引言:
贪吃蛇是一款非常经典的手机游戏,贪吃蛇的设计比较复杂,它涉及的面广、
牵涉方面多,如果不好好考虑牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的
开发中,还要应用 C 语言的图形库函数。因此,在设计开发过程中,要对 C 语言
本程序采用 Microsoft Visual C++6.0 的英文版本进行编译。VisualC++6.0 是 Microsoft 公司推出的基于 Windows 操作系统的可视化 C++编程工具,尽管 Microsoft 公司推出了.NET 平台的集成开发环境,但由于其良好的界面和可操作 性,加上支持标准 C/C++规范,但仍有相当多的编程人员使用 VisualC++6.0 进 行应用系统的开发。
1.2 课题研究工具:...................................................................................................... 4 1.3 应用环境.................................................................................................................. 4 2.游戏程序设计................................................................................................................. 5 2.1 程序功能:.............................................................................................................. 5 2.2 设计思想.................................................................................................................. 5