1、辽 宁 工 业 大 学 C#.NET程序设计 课程设计(汇报)题目: 打砖块游戏 院 (系): 软件学院 专业班级: 计算机信息管理101班 学 号: 学生姓名: 姜洪亮 指导老师: 胡 峰 老师职称: 助 教 起止时间:.11.21至.12.02程序设计专题(汇报)任务及评语院(系):软件学院 教研室:软件教研窒学 号学生姓名姜洪亮专业班级计算机信息管理101班程序设计(汇报)题目打砖块游戏程序设计(汇报)任务程序设计专题任务和要求:(1)掌握c#.net编程、面向对象基础知识。(2)较熟练地编写c#.net windows应用程序。(3)了解C#.net常见类库、编程技巧、异常处理。(5)
2、联络已学过内容,巩固所学理论,增强独立工作能力。(6)经过设计关键使学生有一个独立编写程序过程,对理论学习及动手能力全部有一个很大提升。(7)经过此次设计,深入培养学生热爱专业思想,同时对本专业综合素质提升起一个主动推进作用。程序设计过程中,要严格遵守实践步骤时间安排,听从指导老师指导。正确地完成上述内容,统计实习日志,规范完整地撰写出实训汇报。指导老师评语及成绩成绩: 指导老师签字: 年 12月 02日目 录第1章 程序设计专题目标和要求11.1 程序设计目标11.2 程序设计试验环境11.3 程序设计预备知识11.4 程序设计要求1第2章 程序设计内容22.1概要设计22.2程序整体设计说
3、明22.3程序部分源代码及注释82.4测试结果12第3章 程序设计总结13参考文件14第1章 程序设计目标和要求1.1 程序设计目标C#.Net程序设计是计算机科学和技术专业必修专业基础课程,其实践性、应用性很强。实践教学步骤是必不可少一个关键步骤。本课程程序设计专题实际是软件技术专业学生学习完C#.Net程序设计课程后,进行一次全方面综合训练,C#.Net程序设计设计目标是加深对理论教学内容了解和掌握,使学生较系统地掌握程序设计及其在网络开发中广泛应用,基础方法及技巧,为学生综合利用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 程序设计试验环境硬件要求能运行
4、Windows xp操作系统微机系统。C#.Net程序设计语言及对应集成开发环境visual 。1.3 程序设计预备知识熟悉c#语言及visual 集成开发环境。1.4 程序设计要求按程序设计指导书提供课题,要求学生在自行完成各个操作步骤,并能实现且达成举一反三目标,完成一个项目处理一类问题。要求学生能够全方面、深入了解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够很好地了解和掌握,能够进行简单分析和判定;能编写出含有良好风格程序;掌握c#.net基础技能和面向对象概念和方法;了解windows编程。同时培养学生进行分析问题、处理问题能力;培养学生进行设计分析、设计方法、设计
5、操作和测试、设计过程观察、了解和归纳能力提升。第2章 程序设计内容2.1程序设计题目打砖块游戏:作为我们一款熟知游戏我想大家全部不陌生吧,就是经过挡板把小球挡回,不让小球落地,直到打光全部砖块为止,游戏过关进入更难得模式小球速度愈加快,砖块组成图案发生改变,是一个很有趣味小游戏。2.2程序整体设计说明2.2.1程序设计内容 1. 需求分析 本系统为一个用C#实现为我们所熟悉简单打砖块游戏,该系统具体功效以下:1) 能简便开始游戏,游戏中功效和日常我们所熟悉游戏功效一致 ,直到砖块全部打光过关和在砖块打光之前机会用完游戏结束功效;2) 当游戏结束时会自动弹出消息框提醒本关所取得得分数;3) 当过
6、关时会出现提醒图片,点击进入下一关,下一关方块位置和所组成形状会发生改变 2 设计环境 本程序选择Visual Studio 作为试验环境。3. 程序设计内容和思绪1) 游戏设计游戏开始时,小球会停在挡板正中间,而且此时小球能够伴随挡板左右自由移动,当按下空格键小球弹出,并在程序设定区域中不停碰撞反弹。2) 当小球碰撞到墙壁、挡板、和砖块时候,均以相同速度反弹,而且砖块被碰撞后会以相同速度反弹,而且当砖块被碰撞后会消失。3) 挡板能够左右移动以接住小球,若超出三次没有接住,则游戏结束,按退出键退出,当全部砖块全部打光时则出现进入下一关提醒框,点击进入下一关。2.2.1.1 程序中所用类说明依据
7、设计思绪,能够为系统设计三个类,实现小球类RussiaBlock继承Object类,主窗体类MainForm类,设置窗体类SettingForm类。 using System;using System.Collections.Generic;using System.Text;using System.Drawing;namespace Arkanoid class DisposeDAO / / 处理球碰到砖块后弹方向(上下) / / 砖X坐标 / 砖Y坐标 / 砖水平长度 / 砖高度 / 球X坐标 / 球Y坐标 / 球直径 / 返回string类型值 public static string
8、 DisposeTopDown(int bx, int by, int bw, int bh, int qx, int qy, int qr) string Yfangxiang = ; int f = 0; /方向 if (Math.Abs(by - (qy + qr) = 2) f = 1; /从上碰撞到球 else if (Math.Abs(qy - (by + bh) = 2) f = 2; /从下碰撞到球 if (f = 1) Yfangxiang = YTop; else if (f = 2) Yfangxiang = YDown; return Yfangxiang; / / 处
9、理球碰到砖块后弹方向(左右) / / 砖X坐标 / 砖Y坐标 / 砖水平长度 / 砖高度 / 球X坐标 / 球Y坐标 / 球直径 / 返回string类型值 / / 处理球碰撞到砖块后动作 / / 砖块坐标 / 球X坐标 / 球Y坐标 / 球直径 / 现在X方向 / 现在Y方向 / RreturnDataDbean类型值 public static ReturnDataBean DisposeBrick(Point point, int qx, int qy, int qr, string xfangxiang, string yfangxiang) rn rdb; 2.2.2.程序窗体2.2
10、.2.1程序主界面进入游戏时主界面,能够选择开始、帮助和退出功效。2.2.2.1程序主界面2.2.2.2 游戏界面游戏开始前画面,显示游戏信息,分数、关卡、及生命次数。2.2.2.2游戏界面2.2.2.3帮助界面帮助信息,是相关游戏怎样开始,介绍游戏玩法,和开发作者游戏说明。2.2.2.3帮助界面2.2.2.4开始游戏进入游戏以后,游戏开始画面,空格开始游戏,能够经过键盘、来控制挡板移动。2.2.2.4开始游戏2.2.2.5游戏结束游戏结束画面,当你用完全部生命时,会弹出此窗口,提醒你所得分数,游戏结束,可退出。2.2.2.5游戏结束2.2.2.6游戏过关提醒当你打光全部砖块时,屏幕会出现此字
11、样,提醒你点击进入下一关,显示剩下生命值。2.2.2.6游戏过关2.2.3异常处理说明退出命令。用户可直接退出程序。 注意,假如在游戏过程中鼠标点击别地方,或关闭别文件,此时游戏会继续运行,只关键点击窗口则会继续进行。2.2.4程序运行效果及存在问题2.2.4.1未处理问题2.2.4.1未处理问题2.3程序部分源代码及注释2.3.1 RussiaBlock类以下包含词语基础块指是由四个小方块组成实体,四个小方块指是小正方形。方块和基础块同义。1) 结构函数,经过给定参数:控件实例,左边界,底边界,小方块(一个基础块由4个小方块组成)单位象素,形状号,起始位置,颜色。2) 程序部分源代码及注释u
12、sing System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;namespace Arkanoid public partial class GameCol1 : Form public GameCol1() InitializeComponent(); Point pointPic = new Point50; /封装pic
13、tureBox对象 string keySpace = ; /是否按下空格键 string key = ; /是否按下左右键 string xfangxiang = XRight; /X方向默认为右 string yfangxiang = YTop; /Y方向默认为上 int x = 4; /X坐标移动方向 int y = 4; /Y坐标移动方向 public static int count = 3; /剩下机会 int bw = 0; /砖块宽度 int bh = 0; /砖块高度 int qr = 0; /球直径 Point dispoint = new Point(999, 999);
14、 /移动砖块到XY位置 public static int score = 0; /得分 int _count = -1; int countB = 50; ReturnDataBean rdb = new ReturnDataBean(); /控制球移动timer事件 private void timer1_Tick(object sender, EventArgs e) _count = -1; /击中哪一个砖块 if (countB = 0) keySpace = Stop; xfangxiang = ; yfangxiang = ; this.picNext.Location = ne
15、w Point(12, 254); /右上 if (keySpace = Space & xfangxiang = XRight & yfangxiang = YTop) this.TopRight(); /左下 else if (keySpace = Space & xfangxiang = XLeft & yfangxiang = YTop) this.TopLeft(); /左下 else if (keySpace = Space & xfangxiang = XLeft & yfangxiang = YDown) this.DownLeft(); /右下 else if (keySpa
16、ce = Space & xfangxiang = XRight & yfangxiang = YDown) this.DownRight(); /判定是否击中球 if (_count = 0 & _count = (this.picLeftborder.Location.X + 18) Fpoint.X -= 10; if (keySpace = ) Qpoint.X -= 10; this.picFeichuan.Location = Fpoint; this.picQiu.Location = Qpoint; else if (key = Right) Point Fpoint = th
17、is.picFeichuan.Location; Point Qpoint = this.picQiu.Location; if (this.picFeichuan.Location.X = (this.picRightborder.Location.X - 97) Fpoint.X += 10; if (keySpace = ) Qpoint.X += 10; this.picFeichuan.Location = Fpoint; this.picQiu.Location = Qpoint; 3) 游戏结束代码using System;using System.Collections.Gen
18、eric;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;namespace Arkanoid public partial class GameOver : Form public GameOver() InitializeComponent(); private void lblExit_Click(object sender, EventArgs e) Application.Exi
19、t(); private void lblExit_MouseEnter(object sender, EventArgs e) this.lblExit.ForeColor = Color.Red; private void lblExit_MouseLeave(object sender, EventArgs e) this.lblExit.ForeColor = Color.Black; private void GameOver_Load(object sender, EventArgs e) this.lblScore.Text = GameCol1.score.ToString()
20、; private void label1_Click(object sender, EventArgs e) 2.4 测试结果2.4.1 主窗体运行界面编程完成后,运行调试,主窗体界面,及游戏信息。2.4.1主窗体运行界面第3章 程序设计总结在期末课程设计中,我选择是设计一个游戏(打砖块),这对于我们来说是一次尝试和创新过程,也能够说是一个挑战过程毕竟以前没有做过这类课设,缺乏一定经验,现在利用自己学到知识设计并制作一个游戏,这本身就是一个知识转化为生产力过程,所以我很兴奋,投入了很高热情和努力在具体设计和实施中,我感受到了一个程序和无到有过程,对具体设计步骤,思绪,方法,技巧全部有了深入了
21、解,而且感受深刻。在设计中我基础根据规范方法和步骤进行,首先调查这个游戏,并查阅相关资料,然后确定设计方案,最终设计并制作,实施过程中我深刻认识到认真做游戏关键性。一开始因为不细心出现了错误,这方面我应该加强。在这次设计中我们两人一组,分工和相互协调很关键,我们扬长避短,各及所长和合作意识并有效地缩短开发时间。经过这次设计,我学到了很多,同时也学到了细心和耐心培养。我想这在未来工作或社会“旅程”中全部将起到很大作用,同时也学会了怎样和人相处,和她人配合,共同完成这份作业。在此我要感谢我任课老师和我指导老师,由衷感谢你们!参考文件1. 余仁才C#课程设计教程.52. 罗飞Visual C#编程实
22、例精粹 .33. 郑敬东C#程序设计教程.94. 罗斌 越飞 等编著Visual C# 编程实例精粹 .35. 郑阿奇 梁敬东主编C#程序设计教程.96. 张家祥 方凌江 张贤坤 何鑫 等编著C#范例解析.57. 段德亮,余健,张仁才 编C#课程设计案例精编。58. 刘洪成C#高级教程清华大学出版社9. 张祥 张鑫C#范例解析.510. 张凌江C#范例解析.511. 孙永强等. Visual C#.NET入门和提升.北京:清华大学出版社. 12. B-power工作室.C#网络程序设计. 北京: 中国铁道出版社. 13. 美Anders Hejlsberg,Scott Wiltamuth,Peter Golde著, 张晓坤 谭立平 车树良译C#编程语言详解.北京:电子工业出版社.