Java 俄罗斯方块消行算法

完整的 俄罗斯方块 源码地址:https://github.com/yifanzheng/java_applet/tree/master/tetris 

 

/**
* 消行得分
*/
private int plusExp() {
  //获取地图信息
  boolean[][] gameMap = this.gameDto.getGameMap();
  //初始化消行数
  int lineNum=0;
  //扫描地图,判断是否可以消行
  for(int y=0;y<gameMap.length;y++){

    if(this.isCanRemoveLine(y, gameMap)){
    //消行操作
    this.removeLine(y,gameMap);
    //增加消行数
    lineNum++;
    }
  }
  return lineNum;
}

/**
* 消行操作
*/
private void removeLine(int rowNumber,boolean[][] gameMap){
   for(int x=0;x<GameConfig.getSystemConfig().getMaxX();x++){
      for(int y=rowNumber;y>0;y--){
       gameMap[y][x]=gameMap[y-1][x];
     }
   //第0行置为false
   gameMap[0][x]=false;
  }
}

/**
* 判断是否可以消行
*/
private boolean isCanRemoveLine(int y,boolean[][] gameMap) {
     for(int x=0;x<GameConfig.getSystemConfig().getMaxX();x++){
     //只要该行有一个空(false),就不消行
    if(!gameMap[y][x]){
    return false;
    }
  }
  return true;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值