黑马程序员技术交流社区

标题: 有谁能优化一下俄罗斯方块的消行代码吗? [打印本页]

作者: 柴亚飞    时间: 2011-11-14 22:21
标题: 有谁能优化一下俄罗斯方块的消行代码吗?
消行实现的功能就是满行后让这一行的方块消失(设置成null)。
  1. public void deleteline(int y) {
  2. //fksz[10][20]是放置方块对象的二维数组 。方块数组的下标,同时也是方块在图形显示中的横坐标和纵坐标。(0,0)坐标点是左上角,向右为x正方向,向下为y正方向。
  3.                 while(y>=0){//y是当前方块不能移动后的最靠上的y坐标值
  4.                         while((fksz[0][y]!= null)&& (fksz[1][y]!= null)&& (fksz[2][y]!= null)&& (fksz[3][y]!= null)&& (fksz[4][y]!= null)&& (fksz[5][y]!= null)&& (fksz[6][y]!= null)&& (fksz[7][y]!= null)&& (fksz[8][y]!= null)&& (fksz[9][y]!= null)){
  5.                                 for(int j = y;j>0;j--){
  6.                                         for(int i=0;i<10;i++){
  7.                                                 fksz[i][j] = fksz[i][j-1];
  8.                                                 if(fksz[i][j-1] != null){
  9.                                                         fksz[i][j].setY(j) ;
  10.                                                 }       
  11.                                         }
  12.                                 }
  13.                         }
  14.                         y--;
  15.                 }
  16.         }

复制代码

作者: 柴亚飞    时间: 2011-11-14 22:21
代码有4个循环,谁能减少一两个循环啊?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2