2.5 连连看算法设计
在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。
* 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)
* 1.相邻
* 2. 若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了,可以消了.
* 3.若2失败后,再在第一个按钮的同列找一个空按钮。1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮 2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。
* 若以上三步都失败,说明这两个按钮不可以消去。
2.6类的实现方法
2.6.1 成员变量
成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封装和模块化,一般的全局变量前面要加上static和 fina属性其中,static使该变量任何类都可用(方法 ClassName.全局变量名) ,而 fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改。
表 2-6-1 成员变量
成员变量描述 文件 文件区 菜单项 菜单 标签 文件名 2.6.2 方法设计
方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给调用者的数据类型,void表示没有返回值,参数行(parameter list)是调用时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行为空白,调用时每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以掺杂在语句之间。一个方法不能声明在另一个方法内。
表 2-6-2 方法定义
方法名 MyTextEditor 功能 创建文本编辑器 备注 构造方法 变量类型 File Jtextarea Jmenuitem Umenuitem Jlabel String 名称 File Textarea Menuitem_copy Umenuitem Label_seek Seel Dialog addMenu writeToFile readFromFile openDialog saveDialog actionPerformed itemStateChanged mouseClicked mouseEvent mouseReleased mouseEntered mouseExit mouseDragged Main 创建对话框 添加菜单栏菜单项 向文本区写文件 读文件 打开文件 保存对话框 事件处理 ItemListener事件处理方法 鼠标处理事件 鼠标处理事件 鼠标处理事件 鼠标处理事件 鼠标处理事件 鼠标处理事件 程序开始运行 接口方法 接口方法 接口方法 接口方法 接口方法 接口方法
第3章 测试分析
3.1程序运行情况
连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连在一起的方块后,这两个方块就可以消掉。
图1初始界面
菜单选项中,包括“开始游戏”、“重新开始”、“炸弹”、“退出”功能。
当选择炸弹功能时:每次含有三个炸弹,所炸的位置也是随机的;
图2 游戏界面
粗略想来,由于用户每次只能消除一对图形,即只会用到一个最短路径,但由于实现并不知道用户会选择哪一对图形,所以需要事先计算出所有可能的最短路径并保存起来。此外,采用这种方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同图形之间最短路径,这是因为当某些图像被消去之后可能会产生很多新路径,而我们又不能确定这些空出来的格子到底能够影响哪些路径,所以就只
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java连连看课程设计(2)在线全文阅读。
相关推荐: