Hallo, ich versuche gerade eine 4x4 große Matrix innerhalb einer 20x20 Matrix zu bewegen. Beide sind binär, also die Felder können nur die Werte 1 oder 0 annehmen. Die 4x4 Matrix soll sich natürlich nur im Rahmen der größeren bewegen dürfen und auch nur, wenn dadurch keine anderen 1en "im Weg" sind.
Die Matrix wird mit einem KeyListener kontrolliert, hier ein Beispiel:
Vielen Dank für eure Hilfe!!
Java:
private boolean tryMove(int[][] form, int newX, int newY) {
if (newX < 0 || newY < 0)
return false;
for (int i = 0; i < shape[0].length; i++){
for (int j = 0; j < shape.length; j++) {
if (shape[i][j] == 1) {
if (board[newY + i][newX + j] == 0){
board[curY + i][curX + i] = 0;
board[newY + i][newX + j] = 1;
} else {
return false;
}
}
}
}
return true;
}
Die Matrix wird mit einem KeyListener kontrolliert, hier ein Beispiel:
Java:
case KeyEvent.VK_LEFT:
tryMove(shape, curX - 1, curY);
break;
Vielen Dank für eure Hilfe!!