连连看毕业设计文档.docx
- 文档编号:10030766
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:32
- 大小:489KB
连连看毕业设计文档.docx
《连连看毕业设计文档.docx》由会员分享,可在线阅读,更多相关《连连看毕业设计文档.docx(32页珍藏版)》请在冰豆网上搜索。
连连看毕业设计文档
毕业设计文档
题目:
快乐连连看
作者:
傅丞(学号07021141)
杨昌仁(学号07021126)
系别:
计算机系班级:
软件0701
专业:
计算机应用技术专业(软件方向)
指导教师:
黄河专业技术职务讲师
2010年5月浙江温州
前言
现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。
连连看游戏就是典型了!
游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。
游戏速度节奏快,画面清晰可爱,老少皆宜。
不管你走到哪个游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。
丰富的道具和公共模式的加入,增强游戏的竞争性。
多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。
使用新颖的连击积分规则,使游戏玩家在体会连击的快感后,同时对自己的游戏速度,更有挑战性和追求极速的欲望。
游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。
游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在现实中不能得到的东西。
而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。
摘要
小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友。
本程序将三年来所学的专业知识和其他方面的知识融入到实际应用中。
通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。
关键字
小游戏;连连看;
Abstract
Thesmallgamemanufacturesthegoalhasmetthepeopleleisureneeds,whenintenseworktheleisureclasssmallgamecanbringthegreatestdegreetothehumantherelaxation,mayalsopromotebetweenpeople'sexchange,thecommunication,mayalsoknowmorefriendsthroughthegame.Thisprocedurethespecializedknowledgewhichandotheraspectknowledgestudiesforthreeyearsintegratestothepracticalapplication.Throughdoesthistopic'sdesign,howgraspmanufacturesagamesoftware,aswellasthemanufacturegamesoftware'sentireflow,themanufacturegamesoftware'sstep,isthelateremploymentworkbuildsthefoundation.
Keywords
Smallgame;Lookedagainandagain;
第1章项目概述
1.1项目背景
现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。
连连看游戏就是典型了!
游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。
游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在现实中不能得到的东西。
而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。
1.2任务概述
1.2.1任务概述
1.实现单机版连连看
2.开始游戏后,随机生成图片位置
3.游戏中可使用道具
1.2.2实现目标
●游戏概况
●方案论证
●界面设计
●图片选取及生成
●算法路径实现
●游戏运行
1.3项目开发计划
如表11项目开发计划
表11项目开发计划
启动阶段2009年10月16日--2009年11月30日
2009年10月16日—2009年10月30日
确定毕业设计范围编写申报表编写开题报告
2009年11月01日—2009年11月04日
进行初步任务分配,完成各类表
2009年11月05日--2009年11月30日
确定外部资源
分析阶段2009年12月1日--2009年12月24日
2009年12月01日--2009年11月07日
用况开发
2009年12月08日--2009年12月14日
定义概念模型系统顺序图契约
2009年12月15日--2009年12月24日
编写毕业论文第一章第二章
设计阶段2009年12月25日——2010年1月14日
2009年12月25日--2009年12月30日
定义协作图软件类图类设计
2009年12月31日--2010年01月08日
体系结构设计
2010年01月09日--2010年01月14日
编写论文第三章
初步定稿2010年1月15日——2010年02月10日
2010年1月15日--2010年1月2日
确定模块化/分层设计参数
2010年1月21日--2010年1月26日
明确任务分配,完成任务书
2010年1月27日--2010年2月1日
编写代码及单元测试
2010年2月2日--2010年2月7日
整体测试
2010年2月8日--2010年2月10日
编写论文第4章
文档、程序修改2010年02月11日——2010年04月16日
2010年02月11日--2010年02月26日
制定“帮助”规范开发“帮助”文档
2010年02月27日--2010年03月07日
制定用户手册规范编写用户手册
2010年03月08日--2010年03月19日
依据反馈信息进行修改,提交第二个版本
2010年03月20日--2010年03月25日
系统与论文的持续修改
2010年03月26日--2010年03月31日
依据反馈信息,提交第三个版本
2010年04月01日--2010年04月08日
根据反馈意见提交最终版本
2010年04月09日--2010年04月16日
答辩内容准备
撰写论文2010年04月17日——2010年05月1日
2010年04月17日——2010年05月1日
论文撰写
答辩内容准备2010年05月2日——2010年06月26日
2010年05月2日——2010年06月26日
答辩内容准备
1.4术语表
1.重列:
将游戏中的所有对子重新排列一次。
2.延长时间:
将游戏中的使用时间延长。
3.种子数:
产生图片的数量
4.重复数:
每种图片的重复出现数
第2章分析阶段
2.1用况
2.1.1系统用况图
如图21系统用况
图21系统用况
2.1.2开始游戏
如表2.1.2
表2.1.2开始游戏用况
用况
开始游戏
参与者
操作员
目的
开始玩游戏
类型
主要的和基本的
概述
开始玩游戏
交叉引用
无
典型的事件发
生过程
参与者动作
系统响应
1)双击打开游戏
2)出现游戏主窗体
3)点击“开始游戏”按钮
4)游戏开始
2.1.3修改背景音乐
如表2.1.3修改背景音乐用况
表2.1.3修改背景音乐用况
用况
修改背景音乐
参与者
操作员
目的
修改游戏进行时的音乐
类型
主要的和基本的
概述
修改游戏进行时的音乐
交叉引用
无
典型的事件发
生过程
参与者动作
系统响应
1)点击“修改背景音乐”按钮
2)出现“文件”对话框
3)选择音乐文件,点击确定
4)TEXTBOX4显示音乐文件路径
2.1.4重列游戏
如表2.1.4重列游戏用况
表2.1.4重列游戏用况
用况
重列游戏
参与者
操作员
目的
在游戏形成残局时,重新对图标进行排列
类型
主要的和基本的
概述
在游戏形成残局时,重新对图标进行排列
交叉引用
无
典型的事件发
生过程
参与者动作
系统响应
1)点击重列
2)图标重新排列
2.1.5延长时间
如表2.1.5延长时间用况
表2.1.5延长时间用况
用况
延长时间
参与者
参赛队员
目的
游戏道具,时间不够时,有4次机会可以延长游戏时间
类型
主要的和基本的
概述
游戏道具,时间不够时,有4次机会可以延长游戏时间
交叉引用
无
典型的事件发
生过程
参与者动作
系统响应
1)点击“延长时间”按钮
2)游戏时间延长时间
2.1.6暂停/开始
如表2.1.6暂停/开始用况
表2.1.6暂停/开始用况
用况
暂停/开始
参与者
操作员
目的
游戏进行到一半时,有事需要暂停一会游戏
类型
主要的和基本的
概述
游戏进行到一半时,有事需要暂停一会游戏
交叉引用
无
典型的事件发
生过程
参与者动作
系统响应
1)修改系统的相关设置,并保存
2)修改xml保存记录
2.1.7种类数/重复数设置
如表2.1.7种类数/重复数设置用况
表2.1.7种类数/重复数设置用况
用况
种类数/重复数设置
参与者
操作员
目的
决定生成图标的数量
类型
主要的和基本的
概述
决定生成图标的数量
交叉引用
无
典型的事件发
生过程
参与者动作
系统响应
1)输入要生成图片数
2)点击开始游戏
根据新设置生成图片数
2.2概念模型
2.2.1候选概念
游戏、重列、生成图片数、选择音乐文件、延长时间等
2.2.2关联
如图2.2.2关联
图2.2.2关联
2.2.3属性
图2.2.3属性
图2.2.3属性
2.2.4概念模型图
如图2.2.4概念模型图
图2.2.4概念模型图
2.3系统顺序图
2.3.1开始游戏顺序图
如图2.3.1
图2.3.1开始游戏顺序图
2.3.2修改背景音乐顺序图
如图2.3.2修改背景音乐顺序图
图2.3.2修改背景音乐顺序图
2.3.3重列游戏顺序图
如图2.3.3重列游戏顺序图
图2.3.3重列游戏顺序图
2.3.4延长时间顺序图
如图2.3.4延长时间顺序图
图2.3.4延长时间顺序图
2.3.5暂停/开始顺序图
如图2.3.5暂停/开始顺序图
图2.3.5暂停/开始顺序图
2.3.6种类数/重复数顺序图
如图2.3.6种类数/重复数顺序图
图2.3.6种类数/重复数顺序图
2.4契约
2.4.1播放背景音乐
如表2.4.1播放背景音乐契约
表2.4.1播放背景音乐契约
名称:
Play
职责:
播放背景音乐
类型:
系统
用况:
开始游戏
异常:
没选择自定义音乐,则播放系统音乐
输出:
前置条件:
运行游戏、没有选择自定义音乐
后置条件:
音乐文件路径属性被修改
2.4.2重列
如表2.4.2重列契约
表2.4.2重列契约
名称:
Reset
职责:
重新生成图片位置
类型:
系统
用况:
重列
异常:
游戏已经开始
输出:
前置条件:
游戏开始
后置条件:
图片位置被重列
2.4.3延长时间
如2.4.3延长时间契约
名称:
AddTime
职责:
延长时间
类型:
系统
用况:
延长时间
交叉引用:
无
异常:
延长时间的次数使用完了
输出:
无
前置条件:
游戏开始
后置条件
游戏时间延长25%
2.4.4开始游戏
如2.4.3延长时间契约
名称:
Start
职责:
开始游戏
类型:
系统
用况:
开始游戏
交叉引用:
无
异常:
生成图片总数大于209
输出:
无
前置条件:
程序已经运行
后置条件
创建一个游戏实例,生成图片,前排列好位置
2.4.5暂停
如2.4.3延长时间契约
名称:
Pause
职责:
暂停
类型:
系统
用况:
暂停
交叉引用:
无
异常:
无
输出:
无
前置条件:
游戏已开始
后置条件
时间控件停止
2.4.6开始
如2.4.3延长时间契约
名称:
Go
职责:
继续游戏
类型:
系统
用况:
开始
交叉引用:
无
异常:
无
输出:
无
前置条件:
游戏已暂停
后置条件
时间控件继续
第3章设计阶段
3.1协作图
3.1.1修改背景音乐协作图
1.如图3.1.1修改背景音乐的协作图
图3.1.1修改背景音乐的协作图
2.解释
1.修改背景音乐信息被发送到一个系统实例,它对应于修改背景音乐这个系统操作消息
2.系统对象发送修改背景音乐消息到背景音乐的实例
3.1.2重列的协作图
1.如图3.1.2重列的协作图
图3.1.2重列的协作图
2.解释
3.重列信息被发送到一个系统实例,它对应于重列这个系统操作消息
4.系统对象发送重列消息到图片的实例
3.1.3延长时间的协作图
1.如图3.1.3延长时间的协作图
图3.1.3延长时间的协作图
2.解释
5.延长时间信息被发送到一个系统实例,它对应于延长时间这个系统操作消息
6.系统对象发送延长时间消息到图片的实例
3.2设计类图
3.2.1软件类
3.2.2加入方法
3.2.3加入关联
3.3界面设计与界面类
3.3.1主界面
如图3.2.1主界面
图3.2.1主界面
3.3.2游戏失败界面
如图3.2.2游戏失败界面
图3.2.2游戏失败界面
3.3.3背景音乐选择界面
如图3.2.3背景音乐选择界面
图3.2.2背景音乐选择界面
3.3.4游戏控制区界面
如图3.2.3游戏控制区界面
图3.2.2游戏控制区界面
第4章构造阶段
4.1核心代码
4.1.1图片的随机生成所用到的方法
说明:
通过数组从图片库随即获取规定个数得到图片,随机分布在画布上。
图片个数一定是偶数个。
privatevoidIniteBmp(intmaxnum)
{
g_g=this.CreateGraphics();
for(inti=0;i for(intj=0;j gmap[i,j]=0; IniteRandomMap(refgmap,maxnum); AI=newKernal(refgmap); for(inti=0;i { ResourceManagerrm=newResourceManager("LLK.data",Assembly.GetExecutingAssembly()); img[i]=(Image)rm.GetObject(i.ToString()+".bmp"); //img[i]=(Image)Bitmap.FromFile("Images\\"+(i+1).ToString()+".bmp"); } for(inti=0;i<6;i++) { //bombimg[i]=(Image)Bitmap.FromFile("Images\\B"+(i+1).ToString()+".bmp"); } } 4.1.2得分设置 说明: 1: 两个目标是相同的 2: 两个目标之间连接线的折点不超过两个。 (连接线由x轴和y轴的平行线组成)那么分析一下连接的情况可以看到,一般分三种情况 1: 直线相连2: 一个折点3: 两个折点: 可以发现,如果有折点,每个折点必定有且至少有一个坐标(x或者y)是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。 所以设计思路就是: 假设目标点p1,p2,如果有两个折点分别为z1,z2那么,所要进行的是 1: 如果验证p1,p2直线连线,则连接成立 2: 搜索以p1,p2的x,y方向四条直线(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2,验证p1到z1/z1到z2/z2到p2是否都能直线相连,是则连接成立。 privatevoidProcessCorner(Pointp1,Pointp2) { Point[]corner=newPoint[3]; corner=AI.GetPoints(); Penpen=newPen(newSolidBrush(Color.Red),5);//线画笔 Penbkpen=newPen(newSolidBrush(this.BackColor),5);//擦去画笔 pbvalue+=4; //MoveUp(p1.X,p1.Y); //MoveUp(p2.X,p2.Y); switch(corner[2].X) { case1: score+=20;//一个拐点加20; g_g.DrawLine(pen,newPoint(p1.X*31+15,p1.Y*34+17),newPoint(corner[0].X*31+15,corner[0].Y*34+17)); g_g.DrawLine(pen,newPoint(p2.X*31+15,p2.Y*34+17),newPoint(corner[0].X*31+15,corner[0].Y*34+17)); Thread.Sleep(100); EraseBlock(g_g,p1,p2); g_g.DrawLine(bkpen,newPoint(p1.X*31+15,p1.Y*34+17),newPoint(corner[0].X*31+15,corner[0].Y*34+17)); g_g.DrawLine(bkpen,newPoint(p2.X*31+15,p2.Y*34+17),newPoint(corner[0].X*31+15,corner[0].Y*34+17)); break; case2: score+=40;//两个拐点加40 Point[]ps={newPoint(p1.X*31+15,p1.Y*34+17),newPoint(corner[1].X*31+15,corner[1].Y*34+17),newPoint(corner[0].X*31+15,corner[0].Y*34+17),newPoint(p2.X*31+15,p2.Y*34+17)}; g_g.DrawLines(pen,ps); Thread.Sleep(100); EraseBlock(g_g,p1,p2); g_g.DrawLines(bkpen,ps); //foreach(Pointmpinps) //{ //MessageBox.Show("("+mp.X.ToString()+","+mp.Y.ToString()+")"); //} break; case0: score+=10;//直连加10 g_g.DrawLine(pen,newPoint(p1.X*31+15,p1.Y*34+17),newPoint(p2.X*31+15,p2.Y*34+17)); Thread.Sleep(100); EraseBlock(g_g,p1,p2); g_g.DrawLine(bkpen,newPoint(p1.X*31+15,p1.Y*34+17),newPoint(p2.X*31+15,p2.Y*34+17)); break; default: break; } //RefreshMap(refgmap); label5.Text=score.ToString(); 4.1.3过关设置 把界面上全部图片都消去即为通过此关,进入下一关,种类数加1. 实现代码: privateboolCheckWin(refint[,]map) { boolWin=true; for(inti=0;i for(intj=0;j if(map[i,j]! =0) Win=false; returnWin;//判断过关 } if(CheckWin(refgmap)) { starttimer=false; MessageBox.Show("恭喜过关! "); bStart=false; picnum++;//种类加1 } 4.2系统测试 测试用例 开始游戏如表4.2.1开始游戏测试始游戏 修改背景音乐如表4.2.2修改背景音乐测试 重列如表4.2.3重列测试列 延长时间如表4.2.4延长时间测试 开始/暂停如开始/暂停测试 表4.2.1开始游戏测试 -用例编号 01 测试优先级 高 用例摘要 开始玩游戏 测试类型 黑盒测试 用例类型 基本事件 用例设计者 杨昌仁 设计日期 2009-12-15 对用开发人员 杨昌仁 前置条件 运行程序 测试方法 等价类划分 输入数据 点击开始游戏 执行步骤 1.运行游戏 2.点击开始游戏 预期输出 1.背景音乐响起,游戏开始 实际结果 与实际相符合 测试日期 2009-12-15 结论 正常 表4.2.2用户登入测试 用例编号 02 测试优先级 高 用例摘要 修改背景音乐 测试类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连连 毕业设计 文档