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(); }