对对碰设计报告

上传人:油条 文档编号:112498889 上传时间:2019-11-06 格式:DOC 页数:22 大小:911.50KB
返回 下载 相关 举报
对对碰设计报告_第1页
第1页 / 共22页
对对碰设计报告_第2页
第2页 / 共22页
对对碰设计报告_第3页
第3页 / 共22页
对对碰设计报告_第4页
第4页 / 共22页
对对碰设计报告_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《对对碰设计报告》由会员分享,可在线阅读,更多相关《对对碰设计报告(22页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与工程学院课程设计报告 题目全称:题目全称:C#C#对对碰对对碰 题目难度等级:题目难度等级:1 1 指导老师:指导老师:# 职称:职称:教授 学生姓名:# 学号:201#6 班号:2014#09 平时(上机)平时(上机) (1010 分)分) 计算机使用计算机使用 技能(技能(1010 分)分) 课程设计报告课程设计报告 (2020 分)分) 计算机专业计算机专业 技能(技能(6060 分)分) 加分项(不超加分项(不超 过过 5 5 分)分) 总分总分 备注:如参加答辩,请答辩老师给出计算机专业技能(备注:如参加答辩,请答辩老师给出计算机专业技能(6060 分)的分数。请指导教分

2、)的分数。请指导教 师给出除计算机专业技能(师给出除计算机专业技能(6060 分)以外的其他分数。分)以外的其他分数。 如参加答辩,请答辩老师签字:如参加答辩,请答辩老师签字: 主要任务:主要任务: 消除相邻的消除相邻的 3 3 个及以上的相同图形个及以上的相同图形 详细功能描述:详细功能描述: 界面中的图形,如果相邻的三个(横界面中的图形,如果相邻的三个(横/ /竖竖) )及以上的图形相同,则自动消除。及以上的图形相同,则自动消除。 消除后上方图形下移,然后生成随机图形填满界面。用户可以点击消除后上方图形下移,然后生成随机图形填满界面。用户可以点击 2 2 个图形交换,个图形交换, 使得交换

3、后的图形满足消除条件。要求在计时时间内完成每次消除,如果计时到使得交换后的图形满足消除条件。要求在计时时间内完成每次消除,如果计时到 没有进行消除操作,则游戏结束。没有进行消除操作,则游戏结束。 预期成果或目标:预期成果或目标: 软件代码,课程设计报告。软件代码,课程设计报告。 指导老师评语:指导老师评语: 指导教师签字:指导教师签字: _ 摘 要 对对碰是一款经典的消除类小游戏。不论在 pc 还是在移动端都有着很高的 人气。他的简单操作、美观画面、过关得分都是吸引人的重要手段。而对于这样 一直活跃在人们视线当中的经典游戏,他的核心玩法确实很吸引人。所以我们想 深度发掘这一类对对碰消除游戏的算

4、法与设计思路完成自己对这类游戏基于 C#的 编写与运行。 本次的研究对象是基于 C#的对对碰游戏,探讨一个游戏的设计思想和各阶段 制作流程,运用 VS2010 完成这次课程设计,其中需要完成游戏界面的显示,消 除方块的算法,随机图形的产生,自动识别死锁并重置图案,音效开关等功能。 关键词:对对碰,关键词:对对碰,C#,算法,算法 目 录 目 录 第 1 章 任务完成情况1 第 2 章 对对碰游戏介绍2 第 3 章 “对对碰”的设计思路与流程2 第 4 章 “对对碰”实验代码5 第 5 章 “对对碰”程序运行截 图13 第 6 章 结束 语16 第 7 章 参考文 献18 第 6 章 参考文献

5、第 1 章 任务完成情况 本文的核心任务是基于 C#完成对对碰小游戏的编程,以及完成之后的相关测 试。 经测试后基本完成游戏图形的生成显示,交换方块操作,方块的消除,生成 随机图形填补等功能。除了游戏本体,还带有生命条显示,即消耗时间,完成一 次消除后增加时间,生命条为 0 时游戏结束。结束之后显示分数。除此之外还有 音效的开关,更换皮肤,刷新,帮助菜单。 第 6 章 参考文献 第 2 章 对对碰游戏介绍 对对碰是一款经典的消除类游戏,玩家只要通过点击砖块来使砖块之间互相 还位,连成 3 个以上的砖块来消除得分。在编写对对碰游戏时,最重要的是完成 检测是否有 3 块及以上的砖块以及消除后新增随

6、机砖块,砖块的位置变化等算法。 第 3 章“对对碰”的设计流程 选题时因为曾经做过之类的消除类小游戏,希望通过用新的语言 C#完成熟悉 的编程任务加深对这类小游戏的理解和 C#的使用。 游戏由堆列的小方格组成,玩家需要连续点击相邻的方块交换位置,如果交 换后横排或竖排有 3 块或 3 块以上的方块相同图案则消去并加分。 游戏的界面由 10*10 个小方块组成的,里面储存方块,绘制方块。这里选择 8 种不同的图案,用 Block 定义一个图案。用一个二维数组给不同图案的编号 1- 8,编号相同即消除。生命条在每次消除后增加生命,并在得分栏改变分数。生 命条为 0 时结束游戏,显示结束画面。 所以

7、这个对对碰游戏需要满足的功能基本包括:开始界面,游戏界面,生命 条(时间),小方块,得分。除此之外,为了有更好的游戏体验,选中、消除的 音效,得分榜(运用 XML),皮肤外观,选中方块的高亮显示,这些都是后面基 本完成后考虑的功能。后面结束之后的再来一局按钮。 首先很容易想到利用二维数组储存每个方块和每个方块的图案。像前面所 说的用 1-8 表示 8 种不同的方块图形。当方块消去之后,则 number 数组的值标 记为 0。 在整个游戏中,重要的算法实现中包括选择两块图形后的 exchange()算法, 检测是否存在 3 块及 3 块以上的方块在同一行或同一列的 check()算法,随机图 形

8、填充的 fill()算法。在进行 exchange()后调用 check()算法,检测是否有符合 规则的方块,在消除方块的最上方产生随机图案,同列的图案依次下移,生命条 增加,积分增加。同时需要判断形成的新的图案是否有可消除的砖块。同时判断 是否有可以消除的砖块,若没有,需要重置图案。因此该游戏分为以下几个类 (1) 方块图案 Block 类:获取图案,绘制图案。确定每个方块的坐标,图案。 绘制选中的图案的轮廓线。 (2) 游戏场景类 GameField 类:用于随机生成并绘制所有游戏场景中的方块图 案,交换方块,检测是否存可消去的方块,方块的消除填充等 (3) 游戏窗体 Start 类:包括

9、游戏开始界面,游戏面板,一个定时器,帮助菜 单,音效控制等以及后面新加的换主题功能。添加 picturebox 控件分别 作为游戏的开始界面,游戏界面。 游戏类图如下 第 6 章 参考文献 第 6 章 参考文献 开始写时,就是按照正常游戏顺序开始写。开始游戏界面之后,确定自己 游戏要完成的功能,生命条,音效开关,以及各种图片素材,除了游戏方 块图案用的小色块,其他图形都从网上搜索。 其中重点要说的是否有死锁的算法分析。 下面拿行消除举例 1 4 2 X X 6 3 5 第一种情况即上图所示。存在相邻两块相同的图案,则需要检测 1-6 六的 位置的图案是否存在消除的可能性。 1 X X 2 第二

10、种情况则是间隔的两块相同图案,检测 1,2 位置的图案是否存在消除 第 6 章 参考文献 的可能性。 这种算法同样适用于游戏新加的提示功能。 游戏的工作流程图 Y N Y N Y 设计环境 系统:Windows10 编译环境:VS2010 第 4 章 “对对碰”关键算法代码 public int check() /检测是否同行或列有超过3个一样 for (int i = 0; i = 0; n-) down(n, j); /填充最顶上一格方块 Block tb = new Block(rand.Next(8) + 1, j*50, 0); blocks0, j = tb; /rectan0,

11、j = tb.ImageType; rectan20, j = tb.ImageType; PlaySound(“AddScore“); /重画一下 reDraw(); /*下移某方块对象,参数x,y为矩阵坐标*/ public void down(int x, int y) /7-7 add if (x 来模拟 C+代码时,就会发现这 是一个不可能的任务。 很多人都有这种感受,直接使用 IDE 自带的功能开发,做起来非常轻松。但 一旦有一种自主的想法时,就很难实现-比如修改软件主题。 没有考虑代码量这种问题之所以会出现,是因为微软人多-人家不在乎。 在 C#中,文档注释需求书写 xml,但是

12、文档注释却是不能继承的-用户必须手 动为每个函数和重载添加注释。C#的很多常用的工具类因为其使用的局限性(如 菜鸟用了就会出错)而不被公开。 而这次的课程设计实际上是有点难度的,所以我查阅了很多资料,从各种 C# 编写的小游戏入手,比如扫雷,俄罗斯方块等小游戏。 在这个漫长的课程设计过程中,我遇到几个问题。 第 6 章 参考文献 1.游戏算法的问题。鼠标选择之后,要确定是否有满足消除的砖块,若没有, 则取消交换,若有,则进行 fill()算法,我一开始没有注意,下落的砖块填满消 除砖块的位置,这时也会进行消除。 2.用户界面的效果。原先的图案我是直接色块填充,游戏体验就是两种相同 图案就连在一

13、起,产生不好的效果。后来改成在色块旁边加一层边。其次呢,是 在鼠标选择一个图案之后给图案加了个选中的效果。这些都是在编程完成之后进 行游戏体验进行的改进。 3 游戏死锁的可能。当生成的随机图案在几轮消除后,可能会产生死锁的情 况。所以需要有算法分析存在死锁的情况并重置图案。这个我觉得是其中比较难 的点。 之前的 check 和 fill 算法虽然关键且重要,但是熟悉代码结合循环语句还 是比较容易的。而检查死锁的算法,则需要分为好几种情况,检测好几个位置的 图案。实际上,每一次消除都要进行这个算法。 作为计算机专业的学生,这次课设做下来感觉到自己在编程任务的实践中 能力有着些许不足。编几十行经常

14、有各种 bug,编程思路也不是很明确。经常是 做完之后才发现什么地方需要再补些什么。自己在设计方面也应当加把力,努力 思考做出来的产品用户的各方面的需求,如果只是自己考虑的可能不够全面,在 某些点的设计不够人性化,这样做出来的产品就不尽如人意了。 在基本完成这次设计任务之后,我的编程能力以及对 C#的使用都有了比较大 的提升。也是在一边编程,一边学习提高。 课设结束之后编程的学习还要继续,专业课学习应当更加用心。 最后,感谢#的老师,为我打下坚实的基础,以及在课程设计的过程中帮忙 解决各种问题以及提供的帮助。 第 6 章 参考文献 王小科,赵东会.C#典型模块与项目实战大全M北京;电子工业出版社,2012 陈锐,李欣。Visualc#经典游戏编程开发M北京;科学出版社,2011 百度百科,C#语言

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

当前位置:首页 > 中学教育 > 其它中学文档

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