Java Tetris Game: возникают проблемы при перемещении блока вниз по сетке

Я делаю тетрис на Яве. Мне трудно сдвинуть мои блоки после удаления ряда (потому что оно заполнено). Мой код выбрасывает ошибку arrayIndexOutOfBounds. Остальная часть кода работает, где он находит, какая строка заполнена, и устанавливает эту строку равной 0. Но в операторе if в нижней части это не работает. Спасибо!:)

// Removes any rows that are filled 
public static int removeRows() 
{
    // Variables
    int numOfRows = tetrisGrid.getNumOfRows(); 
    int numOfCols = tetrisGrid.getNumOfCols();
    int numRowsRemoved = 0;
    int [][] grid = tetrisGrid.getGrid();

    // Finds the number of rows that are filled 
    for (int row = 0; row < numOfRows; row++)
    {
      for (int col = 0; col < numOfCols; col++)
      {
        int blockValue = tetrisGrid.getBlockValue(row, col);

        if (blockValue == 0) 
        {
          break;
        }

        if (col == numOfCols - 1) 
        {
          numRowsRemoved++;

          // Sets the rows filled to zero
          for (int change = 0; change < numOfCols; change++)
          {
            grid [row][change] = 0; 
          }   

          // Shifts everything down until it hits blocks below
          for (int shiftRow = 0; shiftRow < 2; shiftRow++)
          {
            for (int shiftCol = 0; shiftCol < numOfCols; shiftCol++)
            {
              if (blockValue == 1)
              {
                grid [row][col] = 0;
                row++;
                col++;
                grid [row][col] = 1;   
                row--;
                col--; 
              }
              else if (blockValue == 0)
                break;

            }
          }

          // TAKE OUT -------------------------
          System.out.println ("--------"); 
          tetrisGrid.printGrid(); 
          System.out.println ("--------");
          // -------------------------
        } 
      }
    }  
    tetrisGrid.setGrid(grid);
    return numRowsRemoved; 
  } 

0 ответов

Другие вопросы по тегам