方法 found(brickSrc,brickDest),寻找顺序:上下左右;
第一步:开始:cur = brickSrc,corner =0;
第二步:单元格(brickSrc.位置.行号+1,brickSrc.位置.列号)是否有砖?有则:
( brickNext = 单元格(brickSrc.位置.行号+1,brickSrc.位置.列号);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第三步} );
第二步:单元格(brickSrc.位置.行号+1,brickSrc.位置.列号)是否有砖?有则:
( brickNext = 单元格(brickSrc.位置.行号+1,brickSrc.位置.列号);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第三步} );
没砖则:cur =单元格(brickSrc.位置.行号+1,brickSrc.位置.列号).砖块, return found(cur,brickDest);
第三步:单元格(brickSrc.位置.行号-1,brickSrc.位置.列号)是否有砖?有则:
( brickNext = 单元格(brickSrc.位置.行号-1,brickSrc.位置.列号);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第四步} );
没砖则cur =单元格(brickSrc.位置.行号-1,brickSrc.位置.列号).砖块,return found(cur,brickDest);
( brickNext = 单元格(brickSrc.位置.行号-1,brickSrc.位置.列号);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第四步} );
没砖则cur =单元格(brickSrc.位置.行号-1,brickSrc.位置.列号).砖块,return found(cur,brickDest);
第四步:单元格(brickSrc.位置.行号,brickSrc.位置.列号-1)是否有砖?有则:
( brickNext = 单元格(brickSrc.位置.行号,brickSrc.位置.列号-1);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第五步} );
没砖则cur =单元格(brickSrc.位置.行号,brickSrc.位置.列号-1).砖块, return found(cur,brickDest);
( brickNext = 单元格(brickSrc.位置.行号,brickSrc.位置.列号-1);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第五步} );
没砖则cur =单元格(brickSrc.位置.行号,brickSrc.位置.列号-1).砖块, return found(cur,brickDest);
第五步:单元格(brickSrc.位置.行号,brickSrc.位置.列号+1)是否有砖?有则:
( brickNext = 单元格(brickSrc.位置.行号,brickSrc.位置.列号+1);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第六步} );
没砖则cur =单元格(brickSrc.位置.行号,brickSrc.位置.列号+1).砖块,return found(cur,brickDest);
( brickNext = 单元格(brickSrc.位置.行号,brickSrc.位置.列号+1);
compResult=comp(brickSrc,brickNext); if compResult { return true;} else{第六步} );
没砖则cur =单元格(brickSrc.位置.行号,brickSrc.位置.列号+1).砖块,return found(cur,brickDest);
第六步:返回false;
方法 comp(brickSrc,brickNext):
{
if (Abs(brickNext.行号-brickSrc.行号)>0&&Abs(brickNext.列号-brickSrc.列号)>0){
corner ++;
}
if (brickSrc .id == brickNext.id && corner<=2){
return true;
}
return false;
}
{
if (Abs(brickNext.行号-brickSrc.行号)>0&&Abs(brickNext.列号-brickSrc.列号)>0){
corner ++;
}
if (brickSrc .id == brickNext.id && corner<=2){
return true;
}
return false;
}