没有合适的资源?快使用搜索试试~ 我知道了~
连连看程序的设计报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 76 浏览量
2021-10-04
20:10:05
上传
评论
收藏 65KB DOC 举报
温馨提示
试读
19页
连连看程序的设计报告.doc
资源推荐
资源详情
资源评论
《计算机应用基础与程序设计》
三级项目设计报告
项目名称: 连连看
班 级: 2014 级软件工程 8 班
学 号:
6
__
郭鹏飞
日 期: 2014 年 12 月 31 日
1 / 20
说明:报告容可以根据自己的设计实践自行拟定和修改,容尽量翔实,页数不够可以
加页,
容过于单薄将影响得分
。建议写报告之前自己上网或在图书馆查阅相关资料进
行报告书写方法的自学。
一、项目分析
项目分析简要说明项目主要用户需求、设计思路与模块划分。
1、用户需求分析
在当今社会,人们的生活压力越来越大,也没有太多时间去玩大型的
游戏,所以需要一些简单的小游戏来缓解大家的工作和学习压力。而连连
看是一款简单,容易理解,大多数人都会玩的小游戏,耗费时间也不是太
长,所以特意设计此款游戏来满足用户放松心情的需求。
2、系统设计思路
(1)必须先导入图片,当俩图片一样时,便可以消除;
(2)窗体基本的菜单栏必须有;
(3)有时间轴控制时间,确定输赢;
(4)当时间到时,不能继续游戏;赢了的话,要保存游戏者和判断
胜负的时间;
(5)最好有历史记录,记录下来用户每一次的得分情况。
3、系统模块划分
板块一:图片导入。连连看应该有用来点击的图片,使用户避免因为
只有数字而感到无聊。
板块二:图片标记。连连看需要点击俩次图片,所以必须记录第一次
点击的图片是哪一个。
板块三:图片连线。该过程是整个游戏的核心过程,是最重要的一个
过程,也是耗时最长的一个过程。连线方式主要分为三种方式,即直线连
接、一个折点连接、俩个折点连接。如果用户前后点击的图片可以通过三
种方式中的任意一种连接,并且图片完全一样,则达到消除图片的效果。
板块四:判断成功。通过判断图片是否完全消除,判断游戏是否胜利。
板块五:判断失败。如果时间到的话,用户失败,增加了游戏的竞争
性。
板块六:重新开始。但用户游戏结束或想要重新开始时,可以重新开
始新的游戏。
板块七:游戏暂停。通过游戏暂停,使用户有事时可以暂停游戏,之
1 / 20
后可以继续游戏。
板块八:游戏难度。满足不同程度的用户的不同需求,共分为“简单”、
“一般”、“复杂”三个难度,享受不同的挑战难度。
板块九:历史记录。将用户玩过的记录保存下来,同时可以使用户名
和游戏时间都保存下来,并且和游戏难度一一对应。
板块十:背景音乐。为了使用户在游戏过程中更加享受,增加背景音
乐和消除音乐,并且任何时候可以控制音乐的开始和结束。
二、项目设计
详细介绍项目各个子模块的设计方法与设计核心技术。
1、各个子模块的设计方法
板块一:图片导入。图片的导入有很多种方法,在该游戏中我采用了
ImageList 的方法。添加一个 ImageList 控件,Name 为 ImageList1,
在其 Image 的属性中添加图片,之后再将图片导入窗口。同时,为了设计
简单,我使用了二维 Button 来承载图片,在 i,j 的循环中添加代码,具
体代码如下:
MyButton[i, j].Name = i.ToString();//为了判断图片是否相同
MyButton[i, j].ImageList = imageList1;
MyButton[i, j].ImageIndex = i - 1;
板块二:图片标记。首先判断是否已有图片选中,如果有则判断是否满足
条件;如果没有,则该图片被选中,同时做出标记,我的方法是使背景变
为红色,所以在导入图片时没有使图片放大。具体代码如下:
Button button = (Button)sender;
button.BackColor = Color.Red;
if (BeforeButton == null)
{
BeforeButton = button;
button = null;
}
else
{
if (button == BeforeButton)//如果前后选择图片为图一,则取消选择
{
BeforeButton = null;
2 / 20
button.BackColor = this.BackColor;
}
else
//判断是否可以消除
板块三:图片连线。连线时游戏的核心代码。首先判断直连,如果俩
相同的图片中间没有别的图片则满足条件可以消除。此处通过网上查阅资
料,用到了返回值。具体代码如下:
//竖直方向的连线
bool Y_line(int Y1, int Y2,int x)
{
if (Y1 > Y2)//保证 Y1<Y2
{
int t = Y1;
Y1 = Y2;
Y2 = t;
}
for (int m = Y1 + 1; m <= Y2; m++)
{
if (m == Y2)
break;
if (MyButton[x, m].Visible !=false)
{
returnfalse;
}
}
returntrue;
}
//水平方向的连线
bool X_line(int X1, int X2, int y)
{
//保证 X1<X2
if (X1 > X2)
{
int t = X1; X1 = X2; X2 = t;
}
3 / 20
剩余18页未读,继续阅读
资源评论
huayuya123
- 粉丝: 26
- 资源: 31万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功