C#课程设计 贪吃蛇
更新时间:2023-10-22 18:05:01 阅读量: 综合文库 文档下载
目 录
一、课程设计的目的与要求 ........................................... 2 二、题目说明 ....................................................... 2
2.1程序开发背景................................................................................................... 2
2.2发工具介绍....................................................................................................... 3 三、总体设计 ....................................................... 3 四、详细说明 ....................................................... 6
4.1 系统实施.......................................................................................................... 6 五、遇到的问题和解决方法 .......................................... 12 七、参考文献 ...................................................... 13
- 1 -
一、课程设计的目的与要求
我们在学习面向过程的编程基础上学习面向对象编程,也是为了能更好的去理解面向对象的含义以及与面向过程的区别.学习这门可视化编程语言,使我们在运用语言编写程序的过程中,能更直观的编写出我们理想中的程序,而且也使我们的编译工作变单易行.C#的出现弥补了C语言家族的不足,它具有更强大的功能、具有VB开发的高效性和方便性.
我们学习这门语言的目的,不是仅仅的理论研究,作为语言,它只是一种工具,因此学习它更重要的是运用它来做有用的程序,这也就是说学习它重在应用.在实践的基础上对它能更好的掌握,而进行简单的设计就是一种很有效的学习实践方式,这也就是我们学习的主要目的:旨在培养学生的上机动手能力和在本课程内初步掌握解决实际应用问题时所应具备的查阅资料、综合运用所学知识的能力,为毕业设计急今后从事专业工作打下坚实的基础.
要求:1. 熟悉.NET开发环境,能够使用C#语言在.NET平台上独立设计、开发WINDOWS。
2.掌握C#语言的异常处理技术,能够使用.NET各种调试方法调试代码,掌握帮
助的使用方法。
3. 掌握常用控件以及控件的常用属性的使用方法。
4. 程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。 5. 软件界面美观大方,操作简洁易用,功能完备可靠。
二、题目说明
贪吃蛇是一款经典游戏,游戏通过adws方向键控制贪吃蛇移动并吃掉屏幕上出现的实物,不能碰到墙壁和自己的身体。游戏开始可以选择贪吃蛇移动的速度,速度越快迟到果实的得分也就越高。
2.1程序开发背景 Microsoft Visual C# 2005是一款入门级程序,visual basic继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。
贪吃蛇游戏非常普遍,几乎所有手机上都有这种游戏,它可以在上班、学习比较累的时侯娱乐一下。这款游戏操作简单,界面整洁,是非常好的游戏。
- 2 -
2.2发工具介绍
此程序使用Microsoft Visual C# 2005Express Edition工具开发的,虽然Visual C# 2005 Express Edition是一款入门级的集成开发环境,但是它同样具有强大的功能,完全可以满足学生和新手的需要,主要功能如下:与ANSI兼容的C#2.0编译器、功能齐全的集成调试器、高级IntelliSense功能、针对Windows窗体开发的设计时支持、支持本地数据库访问和轻松访问XML Web服务等
Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序
三、总体设计
贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。作为一个完整的程序,尤其是一个完整的游戏,必须考虑人机交流与用户体验。 实现思路及具体代码: 1.初始化:public mainForm()
{ }
//
// Windows 窗体设计器支持所必需的 //
InitializeComponent(); //
// TODO: 在InitializeComponent 调用后添加任何构造函数代码 //
2.游戏设置:
//
this.menuItem1.Text = \游戏设置\
// menuItem2 //
this.menuItem2.Index = 0;
this.menuItem2.Text = \蛇体颜色设置\this.menuItem2.Click += new
- 3 -
System.EventHandler(this.menuItem2_Click);
//
// menuItem3 //
this.menuItem3.Index = 1;
this.menuItem3.Text = \食物颜色设置\this.menuItem3.Click += new
System.EventHandler(this.menuItem3_Click);
//
// menuItem4 //
this.menuItem4.Index = 2;
this.menuItem4.MenuItems.AddRange(new
System.Windows.Forms.MenuItem[] {
this.menuItem8,
this.menuItem9,
this.menuItem10,
this.menuItem11});
this.menuItem4.Text = \游戏难度设置\//
// menuItem8 //
this.menuItem8.Checked = true; this.menuItem8.Index = 0; this.menuItem8.Text = \菜鸟\this.menuItem8.Click += new
System.EventHandler(this.menuItem8_Click);
//
// menuItem9
- 4 -
//
this.menuItem9.Index = 1; this.menuItem9.Text = \大鸟\this.menuItem9.Click += new
System.EventHandler(this.menuItem9_Click);
//
// menuItem10 //
this.menuItem10.Index = 2; this.menuItem10.Text = \老鸟\this.menuItem10.Click += new
System.EventHandler(this.menuItem10_Click);
//
// menuItem11 //
this.menuItem11.Index = 3; this.menuItem11.Text = \自虐\this.menuItem11.Click += new
System.EventHandler(this.menuItem11_Click);
// // menuExit //
this.menuExit.Index = 3; this.menuExit.Text = \退出\
3.积分:if(this.snake.Eat(this.foodPoint))
{
//改变积分 this.textBox1.Text
=System.Convert.ToString(++this.foodCount*10); 4.是否结束游戏://开始游戏
private void StartGame() {
drawDelegate = new DrawDele(PutFood); this.Invoke(drawDelegate,null);
- 5 -
while(true) {
Thread.Sleep(speed); if(this.IsGameOver()) { }
MessageBox.Show(\try { } catch { }
this.game.Abort();
四、详细说明
4.1 系统实施
1. 游戏界面
图1开始界面
2.开始前的游戏设置
- 6 -
图2游戏设置
介绍:该操作可以设置蛇的颜色、食物的颜色,以及游戏的难度。 具体代码: this.menuItem1.Text = \游戏设置\
//
// menuItem2 //
this.menuItem2.Index = 0;
this.menuItem2.Text = \蛇体颜色设置\this.menuItem2.Click += new
System.EventHandler(this.menuItem2_Click);
//
// menuItem3 //
- 7 -
this.menuItem3.Index = 1;
this.menuItem3.Text = \食物颜色设置\this.menuItem3.Click += new
System.EventHandler(this.menuItem3_Click);
//
// menuItem4 //
this.menuItem4.Index = 2;
this.menuItem4.MenuItems.AddRange(new
System.Windows.Forms.MenuItem[] {
this.menuItem8,
this.menuItem9,
this.menuItem10,
this.menuItem11});
this.menuItem4.Text = \游戏难度设置\//
// menuItem8 //
this.menuItem8.Checked = true; this.menuItem8.Index = 0; this.menuItem8.Text = \菜鸟\this.menuItem8.Click += new
System.EventHandler(this.menuItem8_Click);
//
// menuItem9 //
this.menuItem9.Index = 1; this.menuItem9.Text = \大鸟\this.menuItem9.Click += new
- 8 -
System.EventHandler(this.menuItem9_Click);
//
// menuItem10 //
this.menuItem10.Index = 2; this.menuItem10.Text = \老鸟\this.menuItem10.Click += new
System.EventHandler(this.menuItem10_Click);
//
// menuItem11 //
this.menuItem11.Index = 3; this.menuItem11.Text = \自虐\this.menuItem11.Click += new
System.EventHandler(this.menuItem11_Click);
// // menuExit //
this.menuExit.Index = 3; this.menuExit.Text = \退出\
3.当程序运行,点击开始按钮后的界面
- 9 -
图3开始界面
控制键的具体代码: //接受键盘事件处理
private void mainForm_KeyPress(object sender, KeyPressEventArgs e) {
if(e.KeyChar == 'a')
this.snake.SnakeWay=(this.snake.SnakeWay ==Way.EAST)?
Way.EAST:Way.WEST;
else if(e.KeyChar == 'd')
this.snake.SnakeWay=(this.snake.SnakeWay ==Way.WEST)?
Way.WEST:Way.EAST;
else if(e.KeyChar == 'w')
this.snake.SnakeWay
=(this.snake.SnakeWay==Way.SOUTH)?Way.SOUTH:Way.NORTH;
else if(e.KeyChar == 's')
this.snake.SnakeWay=(this.snake.SnakeWay==Way.NORTH)?Way.SOUTH:Way.SOUTH; else if(e.KeyChar==32) {
4.当程序运行,蛇每吃到一个食物,积分就增加10分
- 10 -
图4游戏积分
游戏积分的代码:if(this.snake.Eat(this.foodPoint))
{
//改变积分 this.textBox1.Text
=System.Convert.ToString(++this.foodCount*10); 5.当蛇死亡后游戏结束的图
- 11 -
图5蛇死亡
游戏结束的代码:if(this.IsGameOver())
{ }
MessageBox.Show(\try { } catch { }
this.game.Abort();
五、遇到的问题和解决方法
1. 问题:代码经常出错,不会改。
解决方法:通过c#相关书籍,和网上搜查,以及请教老师、同学。
2. 问题:程序代码经常出现“上下文无该文件名”的问题,以至于程序不能运行。
解决方法:检查代码,实在找不出,请教同学和老师,在代码中将错误该正过来。六、
- 12 -
课程设计总结
这两周的课程设计开始蛮难过的,游戏的界面很容易就可以做好,但是代码就很麻烦了,所以只好找书,在网上搜代码,经过努力还是做好了。但是在这过程中出现了不少问题,通过老师同学的帮忙最终还是弄好了,这个还是蛮欣慰的。虽然我的代码不是自己写的,但是通过这次的课程设计,我还是学会了很多东西,慢慢能弄懂代码,知道它的功能,收获蛮大的。
C#因其设计的合理性与简洁化使其成为了一门很容易入门的编程语言,但要真正学好还是需要努力学习的。通过一个学期的学习我们也算入门了,而以后编程的道路还很漫长。更多的练习,更多的源代码阅读将是我们能力提高的必经之路。相信经过努力,我们终会熟练地掌握这门语言。
七、参考文献
[1] 段德亮,余健,张仁才.C#课程设计案例精编,2008,6. [2] 缪勇,李新峰,付志涛. Visual C#学习笔记,2008,5.
- 13 -
正在阅读:
C#课程设计 贪吃蛇10-22
《大学物理学(第二版)》(李乃伯主编)第一至第五单元课后习题指导01-09
文艺复兴时期的园林认识01-22
夏之韵作文600字07-06
人教版高中英语必修2Unit5知识点详解09-06
塑料模具课程设计10-22
焊接试题10-20
我是一块石头作文600字07-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C#
- 贪吃
- 课程
- 设计
- 行政笔试题A卷
- R语言方法总结要点
- ZG40CrMnMoSiNiRe标准
- 临县概况
- 心电设计报告
- 中国人民抗日战争胜利70周年知识竞赛参考题及答案
- BSP电子客票操作手册
- 孔乙己优秀教案
- 团险经验交流材料
- 国企整体上市中的下属上市公司整合
- 七年级英语上册 Unit 3 Welcome to our school知识点梳理(上)(新版)牛津版
- 2019年西安理工大学高科学院年人才招聘公告
- 人大代表换届选举知识问答
- 1至4单元课文填空
- 可持续发展的人力资源低成本与差异化优势融合分析
- vf习题 第四章:SQL
- 2012年度广东省广播电视(论文部分)获奖作品篇目 - 图文
- 白介15
- 研究生社会实践报告5000字
- 普陀区2005学年第二学期初三年级质量调研英