private void eliminate() {
      int eliminated = 0;
     outer:
      for (int a = 19; a>=0; a--) {
         for (int b = 0; b<10; b++)
            if (grid[a][b] == pad)
               continue outer;
         eliminated++;
         for (int b = 0; b<10; b++)
            grid[a][b] = pad;
         int[] tmp = grid[a];
         System.arraycopy(grid, 0, grid, 1, a);
         grid[0] = tmp;
         a++;
      }
      if (eliminated != 0 && csc != null && scores != null) {
         csc.lines += eliminated;
         csc.level = csc.lines / 10;
         csc.score += base_scores[eliminated-1] * csc.level;
         scores.resort();
         drawSurround();
         drawScores();
         adjustDelay();
      }
   }