基于Android系统的连连看详细设计说明书.doc

上传人:b****1 文档编号:235880 上传时间:2022-10-07 格式:DOC 页数:14 大小:549KB
下载 相关 举报
基于Android系统的连连看详细设计说明书.doc_第1页
第1页 / 共14页
基于Android系统的连连看详细设计说明书.doc_第2页
第2页 / 共14页
基于Android系统的连连看详细设计说明书.doc_第3页
第3页 / 共14页
基于Android系统的连连看详细设计说明书.doc_第4页
第4页 / 共14页
基于Android系统的连连看详细设计说明书.doc_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于Android系统的连连看详细设计说明书.doc

《基于Android系统的连连看详细设计说明书.doc》由会员分享,可在线阅读,更多相关《基于Android系统的连连看详细设计说明书.doc(14页珍藏版)》请在冰豆网上搜索。

基于Android系统的连连看详细设计说明书.doc

基于Android系统的连连看

详细设计说明书

1、引言

1.1、编写目的

本文档用于说明本游戏开发的详细过程,使委托方了解软件的内部结构,从而对连连看有更深入的了解,便于后期的维护和修改工作。

 

1.2、背景说明:

a.待开发软件系统的名称:

基于Android系统的连连看游戏设计  

b.本项目的任务提出者:

学校

开发者:

游戏开发小组

用户:

喜欢玩游戏的人

项目开发环境:

eclipse、Android系统平台

1.3、定义

 Android连连看详细设计

1.4、参考资料

《Android开发指南》

2、程序系统的结构

  连连看游戏结构如下:

连连看

消息响应设计

算法设计

界面设计

菜单设计

绘图响应

时间响应

画线设计

消除算法设计

鼠标响应

进度条设计

框架设计

结束游戏

规则说明

游戏设置

开始游戏

主要有四个大类:

classGameView//游戏视类,处理游戏中的情况,包括界面生成,算法,一部分消息响应。

classGameActivity//用于处理游戏中的消息提示

classStartActivity //用于菜单的设计

ClassSetActivity//用于菜单中游戏难度的设定

3、菜单设计说明

  

3.1、程序描述  

主要功能:

用于为玩家提供操作提示,便于玩家了解游戏的规则。

 

可扩展性:

能够适应应用要求的变化和修改,具有灵活的可扩充性。

 

3.2、功能

主要有开始游戏、游戏设置、游戏规则、退出游戏等几个选项

游戏设置的菜单

3.3、性能  

当用户选择菜单时能够快速反应,以满足用户的要求。

 

 

3.4、输人项

用户点击按钮

3.5、输出项

五个菜单选项

3.6、算法  

//定义菜单类,接口为OnClickListener,用于接收用户的单击消息。

 

publicclassStartActivityextendsActivityimplementsView.OnClickListener

//设计5个按钮用于接收按钮消息:

privateButtonbtnStart;

privateButtonbtnSet;

privateButtonbtnRole;

privateButtonbtnAbout;

privateButtonbtnExit;

//在OnCreate函数中将它们初始化:

//获取按钮

btnStart=(Button)findViewById(R.id.btnStart);

btnSet=(Button)findViewById(R.id.btnSet);

btnRole=(Button)findViewById(R.id.btnRole);

btnAbout=(Button)findViewById(R.id.btnAbout);

btnExit=(Button)findViewById(R.id.btnExit);

//注册点击事件

btnStart.setOnClickListener(this);

btnSet.setOnClickListener(this);

btnRole.setOnClickListener(this);

btnAbout.setOnClickListener(this);

btnExit.setOnClickListener(this);

在OnClick函数中对响应进行处理:

setContentView(newGameView(this));//进入游戏,游戏在GameView类中进行了封装

//说明游戏规则

newAlertDialog.Builder(this).setMessage("1.将相同的两张图片用三根以内的直线连在一起就可以消除\n"+

"2.每消除一次图片,都会使可用时间增加\n"+"3.每隔一段时间,当前的界面中的图片会进行重排列\n"+

"4.在规定的时间里,当所有的图片都消除时,即为胜利\n"+"5.规定的时间内有图片未消去,即为失败\n")

.setPositiveButton("确定",null).show();

//结束游戏

this.finish();

//进行游戏设置,设置游戏的难度,调用了SetActivity类

intent.setClass(this,SetActivity.class);

3.7、接口

API函数 

3.8、限制条件

无明显限制条件

4、界面设计说明

4.1、程序描述  

主要功能:

用于为玩家提供可视化的游戏界面,增加了游戏的可玩性。

 

可扩展性:

能够适应应用要求的变化和修改,具有灵活的可扩充性。

 

4.2、功能

生成游戏界面,生成进度条。

如下图:

4.3、性能  

能够快速的随机生成符合用户需要的界面

 

4.4、输人项

无输入

4.5、输出项

游戏界面

4.6、算法  

  

//定义游戏视图类

publicclassGameViewextendsView

//存储素材图片

publicint[]imageType

//保存所有小格子中的图片

publicint[][]grid=newint[row][col];

//初始化加载图片的类型

publicvoidinitType(){

//总共要加载的图片

intsize=(row-2)*(col-2);//64

//每类图片加载的次数(张数)要为偶数

intcount=size/imageType.length;//imageType.length=16即,16种图片

for(inti=0;i

for(intj=0;j

type.add(imageType[i]);

}

}

}

//初始化网格的设计

privatevoidinitGrid(){

Randomr=newRandom();

for(inti=0;i

for(intj=0;j

if(i==0||i==row-1||j==0||j==col-1){

grid[i][j]=0;//四周不设置图片

}else{

intindex=r.nextInt(type.size());

grid[i][j]=type.get(index);

type.remove(index);

}

}

}

}

//设置位图的大小

privatevoidititmBitmap(Contextcontext){

inttypeLength=imageType.length;

image=newBitmap[typeLength];

//重新绘制

for(inti=0;i

//创建一个Bitmap的对象

Bitmapbitmap=Bitmap.createBitmap((int)width,(int)height,Bitmap.Config.ARGB_8888);

//对Bitmap进行绘制

Canvascanvas=newCanvas(bitmap);

Drawabledwr=context.getResources().getDrawable(imageType[i]);

dwr.setBounds(1,1,30,30);

dwr.draw(canvas);

image[i]=bitmap;

}

}

//在OnDraw函数中画出框格,每次进行重绘操作

//设置背景颜色:

PaintbackGround=newPaint();

backGround.setColor(Color.WHITE);

//画一个矩形

canvas.drawRect(0,0,getWidth(),getHeight(),backGround);

//设置网格线条的颜色

Painthigth=newPaint();

higth.setColor(Color.BLUE);

//画网格

for(inti=0;i<10;i++){

//画横线、纵线

canvas.drawLine(0,height*i,getWidth(),height*i,higth);

canvas.drawLine(width*i,0,width*i,getHeight(),higth);

}

//画image图片

booleantest=true;//检测图片是否肖完

for(inti=0;i

for(intj=0;j

if(grid[i][j]!

=0){

canvas.drawBitmap(image[Arrays.binarySearch(imageType,grid[i][j])],

i*width,j*height,null);

test=false;////还有图片,说明未赢

}

}

}

4.7、接口

API函数 

4.8、限制条件

无明显限制条件

5、主要算法设计说明

5.1、程序描述  

主要功能:

完成图片的消除功能,消除时画线功能,重新排列功能。

 

可扩展性:

能够适应应用要求的变化和修改,具有灵活的可扩充性。

 

5.2、功能

完成连连看游戏的核心算法。

5.3、性能  

能够快速判断两图片是否能消除,并能在消除时进行画线操作。

隔一段时间,能够打乱顺序进行重新排列。

 

 

5.4、输人项

用户点击、时间条

5.5、输出项

消除匹配的图片

5.6、算法  

5.6.1、图片的连接判断

对于选中的两个方块的销毁,它们必须符合下面3个条件:

1、选中的两个方块图案相同。

2、选中的两个方块之间没有障碍物阻碍的情况下,可以用若干个垂直的直线线段连接起来。

3、这些将它们连接起来的直线线段的折点不超过两个(连接线由x轴和y轴的平行线组成)。

 

我们进行分情况分析:

无拐点、一个拐点、两个拐点,设置flag进行标记这三种情况。

以下是相关代码:

//获得一个点可向上下左右走的范围

publicint[]extend(Pointa){

inti;

int[]aLoc=newint[4];

//向上

for(i=a.y-1;i>=0&&grid[a.x][i]==0;i--){

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1