示例#1
0
  private void processArchivement() {
    // TODO Auto-generated method stub
    if (!archiveRow.isEmpty()) {
      for (int i = 0; i < archiveRow.size(); i++) {
        // remove row from hash
        for (int j = 0; j < grid_size; j++) {
          Point p = m_game_state.getPxPy(archiveRow.get(i), j);
          NumSprite sprite = _map.get(p);
          sprite.rotateSprite();
          _map.remove(p);
          removeList.add(m_game_state.getMatrix()[archiveRow.get(i)][j]);
        }
        m_game_state.removeRow(archiveRow.get(i));
        _score.addScore(1);
      }
    }

    if (!archiveCol.isEmpty()) {
      for (int i = 0; i < archiveCol.size(); i++) {
        // remove col from hash
        for (int j = 0; j < grid_size; j++) {
          Point p = m_game_state.getPxPy(j, archiveCol.get(i));
          NumSprite sprite = _map.get(p);
          sprite.rotateSprite();
          _map.remove(p);
          removeList.add(m_game_state.getMatrix()[j][archiveCol.get(i)]);
        }
        m_game_state.removeCol(archiveCol.get(i));
        _score.addScore(1);
      }
    }

    if (cross_down) {
      // remove item

      for (int j = 0; j < grid_size; j++)
        for (int i = 0; i < grid_size; i++) {
          if (i + j == grid_size - 1) {
            Point p = m_game_state.getPxPy(i, j);
            NumSprite sprite = _map.get(p);
            sprite.rotateSprite();
            _map.remove(p);
            removeList.add(m_game_state.getMatrix()[i][j]);
          }
        }

      m_game_state.removeCrossDown();
      _score.addScore(2);
    }

    if (cross_up) {
      // remove item
      for (int j = 0; j < grid_size; j++)
        for (int i = 0; i < grid_size; i++) {
          if (i == j) {
            Point p = m_game_state.getPxPy(i, j);
            NumSprite sprite = _map.get(p);
            sprite.rotateSprite();
            _map.remove(p);
            removeList.add(m_game_state.getMatrix()[i][j]);
          }
        }
      m_game_state.removeCrossUp();
      _score.addScore(2);
    }
    boolean wait = false;
    new Thread(
            new Runnable() {
              public void run() {
                /* Do things */
                try {
                  Thread.sleep(200);
                } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                } /* Wait 1000 milliseconds */
                fillGameState();
                m_progress_bar.resume();
              }
            })
        .start();
  }