- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C#程序设计》课程设计
题 目: 贪吃蛇游戏
专 业: 计算机科学与技术11
学 号: 1133050122
姓 名: 李绍威
指导老师: 丁 宁
完成日期: 2014年10月26
成 绩:
目 录
1 前言 2
2 需求分析 2
2.1要求 2
2.2任务 2
2.3运行环境 2
2.4开发工具 3
3 概要设计与详细设计 3
3.1程序功能 3
3.2设计思想 3
3.3设计总体流程图 4
3.4设计的具体实现 6
4 程序测试 11
4.1测试内容与结果 11
4.2程序运行效果图 13
5 课程设计总结 16
参考文献 16
附录 17
1 前言
用C#语言实现贪吃蛇界面游戏以达到一下三个实验目的:
1、复习、VC#.NET的基础知识,进一步加深对VC#.NET技术的理解和掌握;
2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力;
3、培养学生在项目开发中团队合作精神、创新意识及能力。
2 需求分析
2.1实验内容
贪吃蛇游戏开发,首先它可以为大家提供一种当前比较流行的休闲小游戏。贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着很多人,它的制作方法对于很多同学而言都是很神秘的。所以我们希望通过这学期所学知识把它剖析开来,真真正正的了解它的本质和精髓。在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此决定选择这个题目作为VC#.NET的课程设计。
最后一部分就是游戏的模块划分,根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,游戏设置(蛇的颜色、食物的颜色、游戏难度设置),游戏帮助(游戏控制说明)与积分。
2.2实验要求
1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面;
3)说明书、流程图要清楚;
4)记录设计情况(备查,也为编写设计说明书作好准备)
2.3运行环境
(1)WINDOWS7系统
(2)VS.NET开发环境
2.4开发工具
C#语言
3 概要设计与详细设计
3.1程序功能
1)游戏选项:主要实现游戏的开始、暂停、退出,分别可以使用快捷键F2、空格键、F4。
2)设置:
游戏难度等级设置:初级、中级、高级三个难度等级,每个难度等级又实现了三级加速,主要包括一级加速、二级加速、三级加速;
蛇体颜色设置:绿色、红色、蓝色、黑色四种颜色可以选择;
蛇体宽度设置:初始大小、放大两倍、放大三倍三种选择;
食物颜色设置:橙色、黄色、紫色三种颜色可以选择。
3)帮助:游戏操作说明,可以使用快捷键F3打开,主要介绍游戏的操作方法、以及版本信息、制作时间。
3.2设计思想
贪吃蛇的游戏规则:蛇头不能反向移动,若反向则保持原来的运动方向不变;不能碰到场地四周和自身,若碰到到四周墙壁或者自身,则游戏结束;当吃到食物后,应在随机生成一个新的坐标产生食物,并且食物不能再蛇身内生成;选择相应的游戏难度等级,当分数累加到一定程度以后,速度增加,每个等级有分为三个加速阶段。
游戏场地的绘制:将panel控件设计为游戏的背景,场地、贪吃蛇以及食物都是在panel控件中完成绘制。
蛇身和食物的绘制:本实验主要使用Graphics类在panel控件中绘制游戏的场地以及贪吃蛇、食物,食物模块、蛇身各模块的绘制是在单元格中进行绘制的,这样蛇身移动和食物生成过程中不需要重新绘制背景;根据蛇身模块宽度,可以改变蛇体的大小和场地坐标图方格的大小;根据食物类和蛇类各自的颜色变量,再通过菜单来改变其相应的颜色。
游戏的动态刷新控制:使用Timer组件来实现贪吃蛇的移动,通过设置该组件的Interval属性大小来控制移动的速度。
5)蛇身移动的实现:蛇身的移动主要是用ArrList类来实现的,该类的主要功能是使用大小可以根据需要动态增加数组,即建立动态数组来存储蛇身,本实验主要使用ArrList类的Insert方法和RemoveAt方法实现蛇模块的增加、蛇体移动的清除移动尾部。
3.3设计总体流程图
程序结构图:
程序流程图:
文档评论(0)