消砖块(一) JAVA 算法伪代码(草稿):

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IUPRG/article/details/78362656
方法  found(brickSrc,brickDest),寻找顺序:上下左右;
第一步:开始:cur = brickSrc,corner =0;
第二步:单元格(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);
第四步:单元格(brickSrc.位置.行号,brickSrc.位置.列号-1)是否有砖?有则:
  ( 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);
第六步:返回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;
  }
  

猜你喜欢

转载自blog.csdn.net/IUPRG/article/details/78362656