https://github.com/yuyuzhang/CocosCreator-LianLianKan
部分消除不了,小白正在尝试算法改进,求教?
//判断两个是否相邻
isBeside:function(x1,x2,y1,y2,t_arrary){
if(Math.abs(x1-x2) == 1 && y1 == y2)
return true;
else if(Math.abs(y1-y2) == 1 && x1 == x2)
return true;
else
return false;
},
//判断是否在一个线上
isLine:function(x1,x2,y1,y2,t_arrary){
var self=this;
if(self.isBeside(x1, x2, y1, y2, t_arrary))
return true;
if(x1 === x2){
var Ymin=Math.min(y1,y2);
var Ymax=Math.max(y1,y2);
for(Ymin + 1;Ymin < Ymax;Ymin++){
if(self.imageList[Ymin*self.line + x1].getComponent('pic').isempty === false)
{
return false;
}
}
return true;
}
if(y1 === y2){
var Xmin=Math.min(x1,x2) ;
var Xmax=Math.max(x1,x2);
for(Xmin;Xmin<Xmax;Xmin++){
if(self.imageList[y1*self.line+Xmin].getComponent('pic').isempty === false){
return false;
}
}
return true;
}
return false;
},
//判断能否隔空连
isOnedir:function(x1,x2,y1,y2,t_arrary){
var self=this;
var i=0;
for(i;i < self.line; i++){
if(i!= x1 && self.imageList[y1*self.line + i].getComponent('pic').isempty==true){
if(self.isLine(i,x2,y1,y2,t_arrary)&&self.isLine(x1, i, y1, y2, t_arrary))
//if(self.isLine(i,x2,y1,y2,t_arrary))
return true;
}
if(i!= y1 && self.imageList[self.line * i + x1].getComponent('pic').isempty==true){
if(self.isLine(x1,x2,i,y2,t_arrary)&&self.isLine(x1, x1, y1, i, t_arrary))
return true;
}
}
// for(var i =self.line - 1;i > -1; i--){
// if(i!= x1 && self.imageList[y1*self.line + i].getComponent('pic').isempty==true){
// if(self.isLine(i,x2,y1,y2,t_arrary)&&self.isLine(x1, i, y1, y2, t_arrary))
// //if(self.isLine(i,x2,y1,y2,t_arrary))
// return true;
// }
// if(i!= y1 && self.imageList[self.line * i + x1].getComponent('pic').isempty==true){
// if(self.isLine(x1,x2,i,y2,t_arrary)&&self.isLine(x1, x1, y1, i, t_arrary))
// return true;
// }
// }
return false;
},