版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2-《C#程序设计及应用教程》课程设计报告设计题目贪吃蛇游戏专业2011级软件工程班级2011级软件工程姓名学号111164015完成日期2013-06-24
目录1.问题描述………………2.系统设计………………3.数据结构与算法描述…………………4.测试结果与分析………5.总结…………………6.参考文献………………附录程序源代码…………
(报告正文部分):课程设计题目1.问题描述我设计的的游戏首先在主界面选择游戏难度,接着进行游戏,在游戏过程中贪吃蛇不停地吃掉随机产生的食物,蛇身增长,直到蛇触碰到自己的身躯或边框,游戏结束特色:1.游戏可以自选难度,且蛇身长每增加2游戏可以储存游戏分数,你可以查看最高分3游戏过程中蛇的颜色,食物的颜色,分数的颜色,可以不停变换,增加视觉效果2.系统设计2.1设计目标C#课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对C#的理解和掌握;提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新2月异的发展形势;本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,做出设计报告。2.2设计思想程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,所以蛇不可以向相反的方向移动,如果不按任意键,蛇自行在当前方向右前移,但按下有效方向键后,蛇头朝该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇,同时还定义了一个随意的墙。然后利用图形驱动,,制作美观的游戏界面,通过随机函数产生随机的食物,控制游戏过程食物的出现。定义键盘操作控制游戏过程蛇的移动方向,画出边界,并判断游戏是否结束,统计游戏过程中蛇吃的食物数量,计算并输出游戏成绩。2.3系统模块划分数据结构与算法描述开始开始界面界面界面界面选择难度选择难度蛇运动蛇运动_kb_kbhit()_kb_kbhit()hit()键否有按键吃掉水果果选择运动方向 判断是否有方向键按下吃掉水果果选择运动方向产生水果 产生水果Dead? Dead?退出游戏continue?e退出游戏continue?e4.测试结果与分析(可将测试过程抓图说明)主菜单游戏设置界面关于贪吃蛇(帮助)5.总结这是我自己去设计一个比较系统的程序,对我们来说也是一个很好的锻炼。首先,为了能写出程序,我将以前所学都好好的巩固了一遍,并且努力的去灵活的运用。很多都清楚起来。其次,平时都是编写一些单个的操作,这次需要自己写出一个可以实现几个功能的系统性的程序,刚开始时是一头雾水,但经过大家的讨论,自己的摸索,也慢慢找到了方法。这让我体会到,在编写程序时,不仅需要扎实的知识,还要有细心周到的考虑,同学之间的合作也是很重要的。在这两个星期里,我觉得发现了自己还有很多很多的不足,也深刻的体会到了自己还有很多东西要学,而且要真的掌握,还得多用心,多用脑。计算机的确不好学,但只要努力就会有收获。这次程序是写了不少,但还是没能运行出一个正确的结果,不过我相信,经过以后的学习和努力,是肯定能做出一个好的程序来的!6.参考文献(包括书籍、论文、网络资料等)[1]马骏等《C#程序设计及应用教程》.人民邮电出版社附录程序源代码(主要部分)usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading;namespaceMySnake{publicpartialclassfrmGame:Form{privateControllerobjController;privateSnakeobjSnake;privatestringstrUp="";privatestringstrDown="";privatestringstrLeft="";privatestringstrRight="";privateboolblIsGameStart;publicfrmGame(){InitializeComponent();}privatevoidfrmGame_Load(objectsender,EventArgse){blIsGameStart=false;ConfigobjConfig=newConfig();strUp=objConfig.GetConfigValue("Up");strDown=objConfig.GetConfigValue("Down");strLeft=objConfig.GetConfigValue("Left");strRight=objConfig.GetConfigValue("Right");lblUp.Text=strUp;lblDown.Text=strDown;lblLeft.Text=strLeft;lblRight.Text=strRight;}privatevoidtimer1_Tick(objectsender,EventArgse){objController.Move();if(objController.IsGameOver){timer1.Enabled=false;开a始º?ToolStripMenuItem.Enabled=true;暂Y停ª¡êToolStripMenuItem.Enabled=false;MessageBox.Show("GameOver");}else{if(objController.IsGetTarget){lblTargetCount.Text=objController.TargetCount.ToString();lblSnakeLength.Text=objSnake.Length.ToString();lblScore.Text=objController.Score.ToString();lblSpeedLevel.Text=objSnake.Speed.ToString();timer1.Interval=245-objSnake.Speed*20;}}}privatevoid暂Y停ª¡êToolStripMenuItem_Click(objectsender,EventArgse){timer1.Enabled=!timer1.Enabled;}privatevoid退ª?出?ToolStripMenuItem_Click(objectsender,EventArgse){this.Close();}privatevoid开a始º?ToolStripMenuItem_Click(objectsender,EventArgse){if(objController!=null){objController.ClearSnake();}initializeSnake();timer1.Enabled=true;开a始º?ToolStripMenuItem.Enabled=false;暂Y停ª¡êToolStripMenuItem.Enabled=true;结¨¢束º?游®?戏¡¤ToolStripMenuItem.Enabled=true;}privatevoidinitializeSnake(){objSnake=newSnake();objController=newController(plGame,objSnake);lblDirection.Text="向¨°右®¨°";lblSnakeLength.Text="6";lblTargetCount.Text="0";timer1.Interval=245-objSnake.Speed*20;ConfigobjConfig=newConfig();strUp=objConfig.GetConfigValue("Up");strDown=objConfig.GetConfigValue("Down");strLeft=objConfig.GetConfigValue("Left");strRight=objConfig.GetConfigValue("Right");lblUp.Text=strUp;lblDown.Text=strDown;lblLeft.Text=strLeft;lblRight.Text=strRight;objController.InitializeSnake();blIsGameStart=true;}privatevoid结¨¢束º?游®?戏¡¤ToolStripMenuItem_Click(objectsender,EventArgse){timer1.Enabled=false;开a始º?ToolStripMenuItem.Enabled=true;暂Y停ª¡êToolStripMenuItem.Enabled=false;结¨¢束º?游®?戏¡¤ToolStripMenuItem.Enabled=false;}privatevoidfrmGame_KeyDown(objectsender,KeyEventArgse){stringstrKey=e.KeyData.ToString();if(strKey==strUp){if(objSnake.Direction!="D"){objSnake.Direction="U";lblDirection.Text="向¨°上¦?";}}elseif(strKey==strLeft){if(objSnake.Direction!="R"){objSnake.Direction="L";lblDirection.Text="向¨°左Á¨®";}}elseif(strKey==strDown){if(objSnake.Direction!="U"){objSnake.Direction="D";lblDirection.Text="向¨°下?";}}elseif(strKey==strRight){if(objSnake.Direction!="L"){objSnake.Direction="R";lblDirection.Text="向¨°右®¨°";}}}privatevoidfrmGame_Paint(objectsender,Pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓库场地租赁合同
- 2.2 运动的规律性 课件高中政治统编版必修四哲学与文化
- 《中东-埃及 非洲》课件高二区域地理世界地理
- 2026年教师招聘之幼儿教师招聘模拟题库带答案详解(精练)
- 2026年管道知识与技术综合提升试卷含答案详解【考试直接用】
- 2026年市场调查与预期末考试历年机考真题集附参考答案详解【模拟题】
- 2026年公用设备工程师之专业基础知识(暖通空调+动力)通关提分题库及完整答案详解【历年真题】
- 【低空经济】智慧低空无人机自动机场系统建设方案
- 2026年幼儿园节奏知识
- 2026年幼儿园我爱笑
- 2026年上海市黄浦区初三语文二模试卷及答案
- 航天军工行业从海外看中国商发产业链前景
- 2026公司级新员工安全培训教材
- 2026年各地算力统筹与算电协同精细化政策汇编解读
- 配电架空线路标准施工工艺课件
- 医疗器械网络经营培训
- 足浴按摩店卫生管理制度
- 发展对象考试试题附答案
- 艾滋病知识防治培训课件
- 2026年《职业病防治法》宣传周知识竞赛考试题库附参考答案
- (完整版)钢结构厂房施工组织设计(含土建)
评论
0/150
提交评论