ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:1.28MB ,
资源ID:2493625      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2493625.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能移动终端应用开发设计报告Android-欢乐连连看.doc)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能移动终端应用开发设计报告Android-欢乐连连看.doc

1、学院 XX学院智能移动终端应用开发设计报告(20XX/20XX学年第X学期)题 目 : 欢乐连连看 专 业 : XXXXXX 小组成员 : 设计成绩 : 20XX年XX月XX日1.需求分析1.1功能分析每次用户选择两个图形,如果图形满足一定条件(两个图形一样,且这两个图形之间存在转弯少于3的路径),则两个图形都能消掉。给定任意具有相同图形的两个格子,我们需要寻找这两个格子之间在转弯最少的情况下,经过格子数目最少的路径。如果这个最优路径的转弯数目少于3 ,则这两个格子可以消去。将界面中相同的图片消去,游戏限时1000秒,如果在规定的时间内没有完成,就会跳出对话框“时间耗尽了,你输了:(”的字样。

2、如果玩家赢了这局,则弹出“非常棒,你赢了!”在经典的最短路问题中,我们需要求出经过格子数目最少的路径。而这里,要保证转弯数目最少,需要把最短路问题的目标函数修改为从一个点到另一个点的转弯次数。虽然,目标函数修改了,但算法的框架仍然可以保持不变。广度优先搜索是解决经典最短路问题的一个思路。我们看看在新的目标函数(转弯数目最少)下,如何用广度优先搜索来解决图形A(x1,y1)和图形B(x2,y2)之间的最短路问题。1.2设计任务 1、明确软件实用性,设计本次软件; 2、深入学习和理解android开发平台,掌握android软件开发机制和方法; 3、深入分析连连看软件功能流程图; 4、应用软件工程

3、思想,小组合作完成需求分析到代码设计并完成测试; 5、按照格式要求撰写设计报告。 2.设计正文2.1设计分析2.1.1连连看算法设计在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了。1) 相邻 2) 若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否

4、有按钮。3).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了,可以消了. 3) 若2失败后,再在第一个按钮的同列找一个空按钮。1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮 2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。4) 若以上三步都失败,说明这两个按钮不可以消去。2.2 类的实现方法2.2.1 成员变量成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封

5、装和模块化,一般的全局变量前面要加上static和 fina属性其中,static使该变量任何类都可用(方法 ClassName.全局变量名) ,而 fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改。成员变量描述变量类型名称文件FileFile文件区JtextareaTextarea菜单项JmenuitemMenuitem_copy菜单UmenuitemUmenuitem标签JlabelLabel_seek文件名StringSeel图一 成员变量2.2.2 方法设计方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给调用者的数据类型,void表示没有

6、返回值,参数行(parameterlist)是调用时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行为空白,调用时每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以掺杂在语句之间。一个方法不能声明在另一个方法内。方法名功能备注MyTextEditor创建文本编辑器构造方法Dialog创建对话框addMenu添加菜单栏菜单项writeToFile向文本区写文件readFromFile读文件openDialog打开文件saveDialog保存对话框actio

7、nPerformed事件处理itemStateChangedItemListener事件处理方法mouseClicked鼠标处理事件接口方法mouseEvent鼠标处理事件接口方法mouseReleased鼠标处理事件接口方法mouseEntered鼠标处理事件接口方法mouseExit鼠标处理事件接口方法mouseDragged鼠标处理事件接口方法Main程序开始运行图二 方法定义2.2.3 设计流程图3测试分析3.1 程序运行情况连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连在一起的方块后,这两个方块就可以消掉。图三 游戏开始界面 图四 游戏赢了的界面图五 游

8、戏时间耗尽时的界面3.2 测试计划及分析3.2.1 最短路径分析由于用户每次只能消除一对图形,即只会用到一个最短路径,但由于实现并不知道用户会选择哪一对图形,所以需要事先计算出所有可能的最短路径并保存起来。此外,采用这种方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同图形之间最短路径,这是因为当某些图像被消去之后可能会产生很多新路径,而我们又不能确定这些空出来的格子到底能够影响哪些路径,所以就只好都重新计算一遍。其缺点很明显就是每次消去图形动作之后重新计算所有可能的最短路径所需要消耗的时间;而该方法的优点则是可以很快地判断两个相同图形之间是否存在满足条件的最短路

9、径。如果用户很厉害,每次都能选中可以消除的图形对,那么用这种方法浪费的时间就会相当可观,毕竟用户未选中的其他可以连接的图形对之间的最短路径都被浪费掉了;而如果用户很差劲,每轮选择的次数都远远大于当前可能的连接数量时,该方法就会比书中正文提到的方法高效。但这种情况是比较少的,因为在整个游戏中用户主要是会用眼睛“找”而不是频繁的用鼠标去“试”。所以总的来看,维护所有最短路径的方法的效率相对比较低。3.2.2 检验的先后顺序在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。所以,这里应该先检验配对,如果该条件不成立的话,就不要再进行连线检查了,这样可以避免

10、很多不必要的复杂运算。当然,如果你在做这个游戏的时候,配对规则不够如此简单的话,那么就看哪个算起来麻烦就把它放在后面。3.2.3 程序代码package com.automan;/画出网格,并对应的画上分布好图像import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Random;import com.automan.CtrlView.Point;import android.content.Context;import android.graphics.Bitmap;i

11、mport android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.util.Log;import android.view.View;public class GameView extends View public final int row=1

12、0;public final int col=10;public float width;public float height;private int selY;private int selX;public boolean isLine=false;public int grid=new introwcol;private Rect selRect = new Rect();public int lineType=0;public final int V_LINE=1;public final int H_LINE=1;public final int ONE_C_LINE=2;publi

13、c final int TWO_C_LINE=3;public int much=0;Point p;public int imageType=new intR.drawable.aa,R.drawable.bb,R.drawable.cc,R.drawable.dd,R.drawable.ee,R.drawable.ff,R.drawable.gg,R.drawable.hh,R.drawable.ii,R.drawable.jj,R.drawable.kk,R.drawable.ll,R.drawable.mm,R.drawable.nn,R.drawable.oo,R.drawable.pp;public Bitmap image;public List type=new ArrayList(); public GameView(Context context, AttributeSet attrs) super(context, attrs); this.setFocusable(true);this.setFocusableInTouchMode(t

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

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