LinkInfo是一个非常简单的工具类,它用于封装两个方块之间的连接信息——其实就是封装一个List,List里保存了连接线需要经过的点。

在实现LinkInfo对象之前,先来分析两个方块可以相连的情形。连连看游戏的规则约定:两个方块之间最多只能用3条线段相连,也就是说最多只能有2个“拐点”,加上两个方块的中心,方块的连接信息最多只需要4个连接点。图18.5显示了允许出现的连接情况。

考虑到LinkInfo最多需要封装4个连接点,最少需要封装2个连接点,因此程序定义如下LinkInfo类。

程序清单:codes\18\Link\src\org\crazyit\link\object\LinkInfo.java

public class LinkInfo

{

// 创建一个集合用于保存连接点

private List<Point> points = new ArrayList<Point>();

// 提供第一个构造器, 表示两个Point可以直接相连, 没有转折点

public LinkInfo(Point p1, Point p2)

{

// 加到集合中去

points.add(p1);

points.add(p2);

}

// 提供第二个构造器, 表示三个Point可以相连, p2是p1与p3之间的转折点

public LinkInfo(Point p1, Point p2, Point p3)

{

points.add(p1);

points.add(p2);

points.add(p3);

}

// 提供第三个构造器, 表示四个Point可以相连, p2, p3是p1与p4的转折点

public LinkInfo(Point p1, Point p2, Point p3, Point p4)

{

points.add(p1);

points.add(p2);

points.add(p3);

points.add(p4);

}

// 返回连接集合

public List<Point> getLinkPoints()

{

return points;

}

}

LinkInfo中所用的Point代表一个点,程序直接使用了android.graphics.Point类,每个Point封装了该点的XY坐标。

本文节选自《疯狂Android讲义(含CD光盘1张)》一书。

图书详细信息:http://www.cnblogs.com/broadview/archive/2011/07/15/2107603.html

处理方块之间的连接线相关推荐

  1. 疯狂Android讲义(第2版)

    <疯狂Android讲义(第2版)> 基本信息 作者: 李刚 [作译者介绍] 出版社:电子工业出版社 ISBN:9787121194856 上架时间:2013-3-5 出版日期:2013 ...

  2. 《疯狂Android讲义》第二版目录

    目录 第1章  Android应用与开发环境 1             1.1  Android的发展和历史 2                         1.1.1  Android的发展和 ...

  3. 疯狂android讲义目录

    内容简介 计算机便携化是未来的发展趋势,而Android作为最受欢迎的手机.平板电脑操作之一,其发展的上升势头是势不可当的.而Android应用选择了Java作为其开发语言,对于Java来说也是一次极 ...

  4. 疯狂Android讲义(第2版)重印10次的超级畅销书

    查看书籍详细信息: 疯狂Android讲义(第2版)(重印10次的超级畅销书-- 编辑推荐 本书第一版荣获"电子工业出版社最畅销图书奖":累计印刷10次,销售码洋二百余万,是And ...

  5. 项目开发-疯狂连连看游戏开发

    疯狂连连看游戏开发 游戏简介:疯狂连连看,是一款简单易玩的手机休闲游戏,界面布局简单,玩法简单,适合广大年龄层的用户进行休闲.放松.该游戏,应用于Android手机操作系统,Android1.6以上. ...

  6. 疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础(国内首部iOS 7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧)

    疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础(国内首部iOS 7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧) 李刚 编 IS ...

  7. 疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础

    疯狂iOS 讲义(上)Objective-C 2.0与iPhone/iPad应用开发基础(国内首部iOS 7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧) 李刚编 ISBN ...

  8. RS-232串行口连接线 com口连接线 并口链接线 双绞线 交叉线 直连线

    通过串口并口共享资源在两台计算机之间进行通信,最好的方法当然是建立局域网.如果没有建立网络, 又想进行联机通信,在距离不太远(比如不超过20米)的情况下,可考虑通过计算机的并 行口或RS-232串行口 ...

  9. Cocos2dx制作2048(2.数字方块的创建)

    我们今天来完成数字方块的创建以及把方块添加到主场景中,完成4行4列矩阵方块的添加 1.数字方块的创建 1.1新增方块精灵 我们在Classes目录上右键添加新建项,如下图 注意,点击浏览,统一把代码放 ...

最新文章

  1. ORACLE系列之SQL从入门到精通(全面把控数据库基础)
  2. 5、Makefile基础知识汇总(转自陈皓总述)
  3. JDK8之Stream
  4. 计算机组成测试题目及答案,计算机组成原理期中测试试卷一(含题目和答案)
  5. Angular源代码里字母Theta的含义
  6. js等待当前线程内ajax完成,理解javascript定时器中的单线程
  7. 解决 windows npm ERR! asyncWrite is not a function 问题
  8. protobuf3 自定义option_Protobuf3语法详解
  9. 怎样选择宽带上网产品--解读上海电信政企宽带新套餐
  10. Python入门--for循环
  11. 详解文本分类之多通道CNN的理论与实践
  12. windows黑窗命令
  13. FFMPEG学习【ffmpeg工具】
  14. 从零开始写渲染Step1窗口的创建和显示
  15. F5 GTM DNS 知识点和实验 4 -智能DNS基础
  16. k8s pod 污点
  17. Spring MVC 之 DispatcherServlet之主题
  18. 如何解决直播中黑屏、花屏、闪屏问题?10 分钟搞明白
  19. ​python买书本 青少年编程电子学会python编程等级考试一级真题解析2022年3月
  20. 数据结构与算法--哈夫曼树及其应用

热门文章

  1. 无废话Git——本地服务器提交撤销
  2. 自己动手写Docker系列 -- 5.4实现进入容器的namespace,exec命令
  3. mysql 双机备份_mysql双机热备详解及延伸备份
  4. Boxes in a Line UVA - 12657 (双向链表)
  5. python中对文件的操作_Python对文件操作知识
  6. restapi如何传图片_如何设计restful风格接口
  7. python脚本批量登录crt_Python实现批量新建SecureCRT Session
  8. python访问网页被拒_Python Requests.get访问网页403错误
  9. 完整的连接器设计手册_如何设计符合整车厂要求的CAN物理层接口电路?
  10. redisTemplate批量写入数据