基于Android系统的连连看详细设计说明书.doc
- 文档编号:235880
- 上传时间:2022-10-07
- 格式:DOC
- 页数:14
- 大小:549KB
基于Android系统的连连看详细设计说明书.doc
《基于Android系统的连连看详细设计说明书.doc》由会员分享,可在线阅读,更多相关《基于Android系统的连连看详细设计说明书.doc(14页珍藏版)》请在冰豆网上搜索。
基于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--){ }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 系统 连连 详细 设计 说明书