|
android游戏开发之连连看(10)
实现GameService组件
对于GameService组件的前面3个方法,实现起来都比较简单,
程序清单:codes18LinksrcorgcrazyitlinKoardimplGameServiceImpl.java
publicclassGameServiceImplimplementsGameService
{
//定义一个Piece[][]数组,只提供getter方法
privatePiece[][]pieces;
//游戏配置对象
privateGameConfconfig;
publicGameServiceImpl(GameConfconfig)
{
//将游戏的配置对象设置本类中
this.config=config;
}
@Override
publicvoidstart()
{
//定义一个AbstractBoard对象
AbstractBoardboard=null;
Randomrandom=newRandom();
//获取一个随机数,可取值0、1、2、3四值。
intindex=random.nextInt(4);
//随机生成AbstractBoard的子类实例
switch(index)
{
case0:
//0返回VerticalBoard(竖向)
board=newVerticalBoard();
break;
case1:
//1返回HorizontalBoard(横向)
board=newHorizontalBoard();
break;
default:
//默认返回FullBoard
board=newFullBoard();
break;
}
//初始化Piece[][]数组
this.pieces=board.create(config);
}
//直接返回本对象的Piece[][]数组
@Override
publicPiece[][]getPieces()
{
returnthis.pieces;
}
//实现接口的hasPieces方法
@Override
publicbooleanhasPieces()
{
//遍历Piece[][]数组的每个元素
for(inti=0;i<pieces.length;i++)
{
for(intj=0;j<pieces.length;j++)
{
//只要任意一个数组元素不为null,也就是还剩有非空的Piece对象
if(pieces[j]!=null)
{
returntrue;
}
}
}
returnfalse;
}
...
}
上面三个方法实现都很简单,相信读者很容易理解。下面详细介绍剩下的两个方法的实现。(未完.摘自[疯狂Android讲义.李刚])
原文出处:疯狂软件教育http://www.fkjava.org/newsView-421.html |
|