处理方块之间的连接线
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封装了该点的X、Y坐标。
本文节选自《疯狂Android讲义(含CD光盘1张)》一书。
图书详细信息:http://www.cnblogs.com/broadview/archive/2011/07/15/2107603.html
处理方块之间的连接线相关推荐
- 疯狂Android讲义(第2版)
<疯狂Android讲义(第2版)> 基本信息 作者: 李刚 [作译者介绍] 出版社:电子工业出版社 ISBN:9787121194856 上架时间:2013-3-5 出版日期:2013 ...
- 《疯狂Android讲义》第二版目录
目录 第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和 ...
- 疯狂android讲义目录
内容简介 计算机便携化是未来的发展趋势,而Android作为最受欢迎的手机.平板电脑操作之一,其发展的上升势头是势不可当的.而Android应用选择了Java作为其开发语言,对于Java来说也是一次极 ...
- 疯狂Android讲义(第2版)重印10次的超级畅销书
查看书籍详细信息: 疯狂Android讲义(第2版)(重印10次的超级畅销书-- 编辑推荐 本书第一版荣获"电子工业出版社最畅销图书奖":累计印刷10次,销售码洋二百余万,是And ...
- 项目开发-疯狂连连看游戏开发
疯狂连连看游戏开发 游戏简介:疯狂连连看,是一款简单易玩的手机休闲游戏,界面布局简单,玩法简单,适合广大年龄层的用户进行休闲.放松.该游戏,应用于Android手机操作系统,Android1.6以上. ...
- 疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础(国内首部iOS 7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧)
疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础(国内首部iOS 7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧) 李刚 编 IS ...
- 疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础
疯狂iOS 讲义(上)Objective-C 2.0与iPhone/iPad应用开发基础(国内首部iOS 7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧) 李刚编 ISBN ...
- RS-232串行口连接线 com口连接线 并口链接线 双绞线 交叉线 直连线
通过串口并口共享资源在两台计算机之间进行通信,最好的方法当然是建立局域网.如果没有建立网络, 又想进行联机通信,在距离不太远(比如不超过20米)的情况下,可考虑通过计算机的并 行口或RS-232串行口 ...
- Cocos2dx制作2048(2.数字方块的创建)
我们今天来完成数字方块的创建以及把方块添加到主场景中,完成4行4列矩阵方块的添加 1.数字方块的创建 1.1新增方块精灵 我们在Classes目录上右键添加新建项,如下图 注意,点击浏览,统一把代码放 ...
最新文章
- ORACLE系列之SQL从入门到精通(全面把控数据库基础)
- 5、Makefile基础知识汇总(转自陈皓总述)
- JDK8之Stream
- 计算机组成测试题目及答案,计算机组成原理期中测试试卷一(含题目和答案)
- Angular源代码里字母Theta的含义
- js等待当前线程内ajax完成,理解javascript定时器中的单线程
- 解决 windows npm ERR! asyncWrite is not a function 问题
- protobuf3 自定义option_Protobuf3语法详解
- 怎样选择宽带上网产品--解读上海电信政企宽带新套餐
- Python入门--for循环
- 详解文本分类之多通道CNN的理论与实践
- windows黑窗命令
- FFMPEG学习【ffmpeg工具】
- 从零开始写渲染Step1窗口的创建和显示
- F5 GTM DNS 知识点和实验 4 -智能DNS基础
- k8s pod 污点
- Spring MVC 之 DispatcherServlet之主题
- 如何解决直播中黑屏、花屏、闪屏问题?10 分钟搞明白
- ​python买书本 青少年编程电子学会python编程等级考试一级真题解析2022年3月
- 数据结构与算法--哈夫曼树及其应用
热门文章
- 无废话Git——本地服务器提交撤销
- 自己动手写Docker系列 -- 5.4实现进入容器的namespace,exec命令
- mysql 双机备份_mysql双机热备详解及延伸备份
- Boxes in a Line UVA - 12657 (双向链表)
- python中对文件的操作_Python对文件操作知识
- restapi如何传图片_如何设计restful风格接口
- python脚本批量登录crt_Python实现批量新建SecureCRT Session
- python访问网页被拒_Python Requests.get访问网页403错误
- 完整的连接器设计手册_如何设计符合整车厂要求的CAN物理层接口电路?
- redisTemplate批量写入数据