C课程设计报告-贪吃蛇

上传人:新** 文档编号:512114269 上传时间:2024-01-18 格式:DOC 页数:49 大小:267.52KB
返回 下载 相关 举报
C课程设计报告-贪吃蛇_第1页
第1页 / 共49页
C课程设计报告-贪吃蛇_第2页
第2页 / 共49页
C课程设计报告-贪吃蛇_第3页
第3页 / 共49页
C课程设计报告-贪吃蛇_第4页
第4页 / 共49页
C课程设计报告-贪吃蛇_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《C课程设计报告-贪吃蛇》由会员分享,可在线阅读,更多相关《C课程设计报告-贪吃蛇(49页珍藏版)》请在金锄头文库上搜索。

1、程序设计基础课程设计贪吃蛇 院 系: 计算机学院网络工程系 班 级: 12 2 班 姓 名: 林扬博 指导教师: 鲁静轩 2012 年 12 月 25 日程序设计基础课程设计任务书一、题目:贪吃蛇 二、设计要求(1)XXX负责设计与实现。(2)查阅相关资料,自学具体课题中涉及到的新知识。(3)采用结构化、模块化程序设计方法,功能要完善,具有一定的创新。(4)所设计的程序应有输入、输出。(5)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、谢启、附录:带中文注释的程序清单、参考文献。

2、报告一律用A4纸打印,中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。三、课程设计工作量由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。四、课程设计工作计划2012年12月17日,指导教师讲课,学生根据题目准备资料;2012年12月18日,设计小组进行总体方案设计和任务分工;2012年12月19日2010年12月21日,每人完成

3、自己承担的程序模块并通过独立编译;2012年12月22日2010年12月26日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;2012年12月27日,软件发布2012年12月28日,验收、撰写报告;2013年1月5日,交课程设计报告 指导教师签章: 教研室主任签章 程序设计基础课程设计指导教师评语与成绩指导教师评语:课程设计表现成绩: 课程设计验收成绩: 课程设计报告成绩: 课程设计 总成绩: 指导教师签章 2012年 12 月 31 日目 录一 概述(宋体,三号,加粗,居中)5二 总体方案设计6三 详细设计8四 程序的调试与运行结果说明15五 课程设计总结18六 后记18参考文

4、献19七 附录20一 概述1. 课程设计的目的学生更深入地理解和掌握该课程中的基本概念,程序设计的思想、技术和方法。 培养学生综合运用所学知识独立完成课题以及撰写课程设计报告的能力。 培养学生勇于探索、严谨推理、实事求是、有过必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 提高学生对工作认真负责、一丝不苟,对同学团结友爱、协作攻关的基本素质。 培养学生从资料文献、科学实验中获得新知识的能力,提高学生从别人的经验中找到解决问题的新途径的悟性,初步培养工 程意识和创新能力。 对学生掌握知识的深度,运用理论去处理问题的能力、实践动手的能力,课程设计的能力、书面及口头表达能力进行综

5、合考 核。2. 课程设计的要求 学生自由组成课程设计软件开发小组(及开发团队),可由指导教师确定每组的人数,建议每组三人左右,并选举一人为组长。指导教师可根据各个小组的实际情况进行必要的调整。 该软件系统运行时应先播放同步的动画音乐,播放完后,通过选择进入游戏。 进一步掌握C语言集成开发环境。 熟练掌握C语言的数据类型、几种基本结构、数组、指针、结构体、模块化 设计等知识点。 从书中或互联网上查阅相关资料,自学具体课题中涉及到新的知识。 采用结构化、模块化程序设计方法进行设计,功能要完善,界面要美观,应具有一定的创新。 要求开发小组的每个成员都应独立设计若干个模块,每个人设计的有效资源程序代码

6、应在200行以上。同时要读懂其他组员 完成的任务。3. 课程设计的主要设计思想这个程序的关键点是表示蛇的图形以及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时,由于没有清屏的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来蛇会多一节身体,所以将蛇的最后一节用背景

7、色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块。为了便于理解,定义了两个结构体:食物和蛇。二 总体方案设计整体框图 主控模块 模块划分 退出结束处理游戏过程动画音乐画主界面图形驱动排行榜读取记录成绩排序写入文件 主控模块 主控模块由main函数实现,主要用来依次调用各个下层模块,从而控制完成整个程序的功能。动画音乐函数 该模块用来同步播放下雪的动画和简单的音乐,并在屏幕的中间输出颜色不断变换的欢迎词语。画主界面函数 画主界面模块由函数Drawk实现,他画出了一个封闭的围墙。在单人模式下,用两个循环语句在水平方向和垂直方向上输出连续的宽度和高度均为10单位(像素)的浅青色矩形方块,围成密闭图形

8、表示围墙。在双人模式下,在单人模式下画的围墙的基础上再加一条垂直方向上的围墙就可以。函数setlinstyle设置线型宽度为1像素。这样避免了蛇贴墙走的时候,会檫掉一部分影响界面美观这种情况。游戏过程模块 该模块是整个程序的核心模块,他完成整个游戏过程,在我们组做的这个贪吃蛇游戏中,有两个这个模块,分别由Gameplay1和Gameplay2来实现,每次蛇移动的时候,从最后一节开始到第二节,将前一节的坐标赋给后一节的坐标,移动后把最后一节用背景色覆盖,然后蛇头位置按方向键更改位置,要确保食物出现在10的倍数位置上,判断蛇是否吃到食物的是蛇头坐标和食物坐标是否相同。我们设计的这个贪吃蛇游戏中还有

9、另一个特色,那就是在游戏运行的时候会出现随机障碍,这些障碍是蛇在吃了三个食物之后,会出现一个位置不定的红色的随机障碍,而且它存在一会就会消失,蛇在吃够三个食物后又会出现,就这样一直循环知道蛇死了为止。游戏结束处理模块 当游戏结束时,则调用Endplay函数进行游戏结束处理,在该模块中将依次调用读取记录、成绩排序、写入文件、排行榜等模块,实现有关处理。由于我们的贪吃蛇有双人模式还有单人模式,所以我们有两套读取记录、成绩排序、写入文件、排行榜等模块。读取记录模块 该模块由ReadFiles1和ReadFiles2函数来实现。即用用来读取排行榜1和排行榜2的信息记录。如果是首次读取文件,将调用Ini

10、tScoreFiles函数,将初始记录文件,两个排行榜都设置五名选手,初始姓名都为“nobody”,初始分数都是0.成绩排序模块 该模块由CompareScore1和CompareScore2函数来实现。当游戏者1和游戏者2的成绩比排行榜1和排行榜2中第五名的成绩高时,即调用该模块将成绩加入排行榜中排序,将原来的第五名删除。写入文件模块 该模块由WriterFiles1和WriterFiles2来实现,将两个新的排行榜信息写入文件。排行榜模块 该模块由pain_board1和pain_board2来实现。主要功能是建立两个排行榜界面,输出五个最高分玩家姓名和成绩。退出 显示排行榜后,返回主界面

11、选择exit按一下空格键就可以退出游戏了。三 详细设计流程图:/*下雪的动画并同时播放音乐函数*/void DrawSnow() int i; int sx62; setlinestyle(SOLID_LINE,0,THICK_WIDTH); line(1,1,9,9); /*一次3行画出白色雪花的3条线 */ line(0,5,10,5); line(9,1,1,9); save=malloc(200);/*在堆中申请200字节空间*/ getimage(0,0,10,10,save); /*将雪花位图保存到save中 */ cleardevice(); /*清屏*/ randomize()

12、; /*设置随机数的种子数 */ for(i=0;i62;i+) sxi=(i+2)*10; /*计算雪花位置的横坐标数组*/ /*以下的键控制while循环控制播放音乐和下雪动画*/ while(!kbhit() /*如果未按键,执行循环体 */ Pr(); /*调用Pr函数输出欢迎词并播放声音*/ if(snownum!=100) snowsnownum.speed=2+random(5); i=random(62); snowsnownum.x=sxi; /*取横坐标*/ snowsnownum.y=10-random(100); /*计算纵坐标*/ /*循环放置snownum个雪花 */ for(i=0;isnownum;i+) putimage(snowi.x,snowi.y,save,COPY_PUT); delay(100); /*延迟100ms以便看到雪花 */ cleardevice(); /*清屏*/ Pr(); /*调用Pr函数输出欢迎词并播放声音 */ if(snownum!=100)snownum+; setfillstyle(SOLID_FILL,15); for(i=0;i500)snowi.y=10-r

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号