对对碰设计报告



《对对碰设计报告》由会员分享,可在线阅读,更多相关《对对碰设计报告(32页珍藏版)》请在文档大全上搜索。
1、精品计算机科学与工程学院课程设计报告题目全称: C# 对对碰题目难度等级: 1指导老师: #职称:教授学生姓名: #学号: 201#6班号: 2014#09平时(上机)计算机使用课程设计报告计算机专业加分项(不超总分(10 分)技能(10 分)(20 分)技能(60 分)过 5 分)备注:如参加答辩,请答辩老师给出计算机专业技能( 60 分)的分数。请指导教师给出除计算机专业技能( 60 分)以外的其他分数。如参加答辩,请答辩老师签字:主要任务:消除相邻的 3 个及以上的相同图形详细功能描述:界面中的图形,如果相邻的三个(横/ 竖)及以上的图形相同,则自动消除。消除后上方图形下移,然后生成随机
2、图形填满界面。用户可以点击 2 个图形交换,使得交换后的图形满足消除条件。要求在计时时间内完成每次消除,如果计时到没有进行消除操作,则游戏结束。预期成果或目标:软件代码,课程设计报告。指导老师评语:welcome精品指导教师签字:_welcome精品摘 要对对碰是一款经典的消除类小游戏。 不论在 pc 还是在移动端都有着很高的人气。他的简单操作、美观画面、过关得分都是吸引人的重要手段。而对于这样一直活跃在人们视线当中的经典游戏,他的核心玩法确实很吸引人。所以我们想深度发掘这一类对对碰消除游戏的算法与设计思路完成自己对这类游戏基于 C# 的编写与运行。本次的研究对象是基于 C# 的对对碰游戏,
3、探讨一个游戏的设计思想和各阶段制作流程,运用 VS2010 完成这次课程设计,其中需要完成游戏界面的显示,消除方块的算法,随机图形的产生,自动识别死锁并重置图案,音效开关等功能。关键词:对对碰, C# ,算法welcome精品目 录1 1 2 2 3 “ ” 2 4 “ ” 5 5 “ ” 13 6 16 7 18welcome精品第 1 章 任务完成情况本文的核心任务是基于C# 完成对对碰小游戏的编程, 以及完成之后的相关测试。经测试后基本完成游戏图形的生成显示,交换方块操作,方块的消除,生成随机图形填补等功能。除了游戏本体,还带有生命条显示,即消耗时间,完成一次消除后增加时间,生命条为0
4、时游戏结束。结束之后显示分数。除此之外还有音效的开关,更换皮肤,刷新,帮助菜单。welcome精品第 2 章 对对碰游戏介绍对对碰是一款经典的 消除类游戏 ,玩家只要通过点击砖块来使砖块之间互相还位,连成 3 个以上的砖块来消除得分。在编写对对碰游戏时,最重要的是完成检测是否有 3 块及以上的砖块以及消除后新增随机砖块,砖块的位置变化等算法。第 3 章“对对碰”的设计流程选题时因为曾经做过之类的消除类小游戏,希望通过用新的语言C# 完成熟悉的编程任务加深对这类小游戏的理解和C# 的使用。游戏由堆列的小方格组成,玩家需要连续点击相邻的方块交换位置,如果交换后横排或竖排有3 块或 3 块以上的方块
5、相同图案则消去并加分。游戏的界面由10*10 个小方块组成的,里面储存方块,绘制方块。这里选择8 种不同的图案,用 Block 定义一个图案。用一个二维数组给不同图案的编号1-8 ,编号相同即消除。生命条在每次消除后增加生命,并在得分栏改变分数。生命条为 0 时结束游戏,显示结束画面。所以这个对对碰游戏需要满足的功能基本包括:开始界面,游戏界面,生命条(时间),小方块,得分。除此之外,为了有更好的游戏体验,选中、消除的音效,得分榜(运用 XML ),皮肤外观,选中方块的高亮显示,这些都是后面基本完成后考虑的功能。后面结束之后的再来一局按钮。首先很容易想到利用二维数组储存每个方块和每个方块的图案
6、。像前面所说的用 1-8 表示 8 种不同的方块图形。当方块消去之后,则number数组的值标记为 0。在整个游戏中,重要的算法实现中包括选择两块图形后的exchange() 算法,检测是否存在 3 块及 3 块以上的方块在同一行或同一列的 check() 算法,随机图形填充的 fill() 算法。在进行 exchange() 后调用 check() 算法,检测是否有符合规则的方块,在消除方块的最上方产生随机图案,同列的图案依次下移,生命条增加,积分增加。同时需要判断形成的新的图案是否有可消除的砖块。同时判断是否有可以消除的砖块,若没有,需要重置图案。因此该游戏分为以下几个类(1) 方块图案B
7、lock 类:获取图案,绘制图案。确定每个方块的坐标,图案。绘制选中的图案的轮廓线。welcome精品(2) 游戏场景类 GameField类:用于随机生成并绘制所有游戏场景中的方块图案,交换方块,检测是否存可消去的方块,方块的消除填充等(3) 游戏窗体 Start 类:包括游戏开始界面, 游戏面板,一个定时器,帮助菜单,音效控制等以及后面新加的换主题功能。添加 picturebox控件分别作为游戏的开始界面,游戏界面。游戏类图如下welcome精品开始写时,就是按照正常游戏顺序开始写。开始游戏界面之后,确定自己游戏要完成的功能,生命条,音效开关,以及各种图片素材,除了游戏方块图案用的小色块,
8、其他图形都从网上搜索。其中重点要说的是否有死锁的算法分析。下面拿行消除举例142XX635第一种情况即上图所示。存在相邻两块相同的图案,则需要检测1-6 六的位置的图案是否存在消除的可能性。1welcome精品XX2第二种情况则是间隔的两块相同图案, 检测 1,2 位置的图案是否存在消除的可能性。这种算法同样适用于游戏新加的提示功能。游戏的工作流程图开始计时开始到时间N死 锁 吗=N选择图片交换可消除吗设计环境系统: Windows10编译环境: VS2010YYY结束游戏重置图形消除,填充时间积分增加第 4 章 “对对碰”关键算法代码welcome精品publicint check()/ 检
9、测是否同行或列有超过 3个一样for (int i = 0; i < 10; i+)for (int j = 0; j < 10; j+)/for 内开始/ 行检测if (j = 0)RowSames = 1;elseif (blocksi, j - 1.ImageType = blocksi,j.ImageType)/ 图案相同RowSames+;elseif (RowSames >= 3)/ 该位置之前 rowsames 个格子的物体都要消除for (int n = 1; n <= RowSames; n+)rectan2i, j - n = 0;RowSames
10、= 1;if (j = 9 && RowSames >= 3)/ 该位置之前 rowsames 个格子的物体都要消除for (int n = 1; n <= RowSames; n+)welcome精品rectan2i, 10 - n = 0;/ 列检测if (j = 0)ColumSames = 1;elseif (blocksj - 1, i.ImageType = blocksj,i.ImageType)/ 图案相同ColumSames+;elseif (ColumSames >= 3)/ 该位置之上的 columsames个格子的物体要消除for (i
11、nt n = 1; n <= ColumSames; n+)rectan2j - n, i = 0;ColumSames = 1;if (j = 9 && ColumSames >= 3)/ 该位置之前 rowsames 个格子的物体都要消除for (int n = 1; n <= ColumSames; n+)rectan210 - n, i = 0;welcome精品/for 内结束RowSames = 1;ColumSames = 1;/ 检测每列有多少个空格int temp = 0;int result = 0;/ 总和for (int i = 0;