Не могу реализовать метод использования клавиатуры и мышки для движения

Пытаюсь создать пазл (пятнашки) на java используя библиотеку processing. Не могу реализовать метод использования клавиатуры и мышки для движения

   import processing.core.PApplet;
   public class Fifteen extends PApplet {
   
       static final String TITLE_MSG = "Game 15";
       static final String MOVES_MSG = "Moves: ";
   
       float sizeOfBoard;
       float leftTopX;
       float leftTopY;
       float cellSize;
       float numberCellSize;
   
       float titleX;
       float titleY;
       float titleSize;
   
       float numOfMoveMsgX;
       float numOfMoveMsgY;
       float numOfMovesMsgSize;
   
       int nMoves;
       int[][] board = {
               {1, 2, 3, 4},
               {5, 6, 7, 8},
               {9, 10, 11, 12},
               {13, 14, 15, 16}
       };
       int rowEmptyCell = 3;
       int columnEmptyCell = 3;
   
   
   
       public void settings() {
           fullScreen();
       }
   
       public void setup() {
           sizeOfBoard = height / 2f;
           leftTopX = width / 2f - sizeOfBoard / 2f;
           leftTopY = height / 2f - sizeOfBoard / 2f;
           cellSize = sizeOfBoard / 4f;
           numberCellSize = cellSize / 1.5f;
           textAlign(CENTER, CENTER);
   
           titleSize = numberCellSize * 1.3f;
           titleX = width /2f;
           titleY = titleSize;
   
           numOfMovesMsgSize = numberCellSize * 0.6f;
           numOfMoveMsgX = width - width / 8f;
           numOfMoveMsgY = height / 2f;
           nMoves = 0;
   
       }
   
       public void draw() {
           background(0);
           drawTitle();
           drawBoard();
           drawNumberOfMoves();
   
       }
   
       public void keyReleased() {
           switch (keyCode) {
               case UP:
                   moveNumber(-1, 0);
                   break;
               case  DOWN:
               case RIGHT:
               case LEFT:
                   ++nMoves;
                   break;
           }
       }
   
       public void mouseReleased() {
           for (int row = 0; row < 4; ++row) {
               for (int col = 0; col < 4; col++) {
                   float topLeftCellX = leftTopX + col * cellSize;
                   float topLeftCellY = leftTopY + row * cellSize;
                   if (isInRect(topLeftCellX, topLeftCellY, cellSize, cellSize, mouseX, mouseY)) {
                       System.out.println(board[row][col]);
                       ++nMoves;
                   }
               }
           }
       }
   
       boolean isInRect (float rectX, float rectY, float w, float h, float x, float y) {
           return rectX <= x && x < rectX + w && rectY <= y && y < rectY +h;
       }
   
       void drawTitle() {
           fill(255f, 255f, 0);
           textSize(titleSize);
           text(TITLE_MSG, titleX, titleY);
       }
   
       void  drawNumberOfMoves() {
           fill(255f, 255f, 0);
           textSize(numOfMovesMsgSize);
           text(MOVES_MSG + nMoves, numOfMoveMsgX, numOfMoveMsgY);
       }
   
       public void drawBoard() {
           for (int row = 0; row < 4; ++row) {
               for (int col = 0; col < 4; col++) {
                   stroke(100);
                   strokeWeight(3);
                   fill(0, 0, 255);
                   rect(leftTopX + col * cellSize, leftTopY + row * cellSize, cellSize, cellSize);
                   if (board [row][col] != 16) {
                       fill(255f, 255f, 0);
                       textSize(numberCellSize);
                       text(board[row][col], leftTopX + col * cellSize + cellSize / 2f, leftTopY + row * cellSize + cellSize / 3f);
                   }
               }
           }
       }
   
       void moveNumber (int dr, int dc) {
           int newRow = rowEmptyCell + dr;
           int newCol = columnEmptyCell + dc;
           int temp = board[newRow][newCol];
           board[newRow][newCol] = 16;
           board [rowEmptyCell][columnEmptyCell] = temp;
           rowEmptyCell = newRow;
           columnEmptyCell = newCol;
           ++nMoves;
       }
   
       public static void main(String[] args) {
           PApplet.main("Fifteen");
       }
   }


Ответы (0 шт):