diff --git a/src/Tetris/Stein.java b/src/Tetris/Stein.java index 25d9e88..ea3af2f 100644 --- a/src/Tetris/Stein.java +++ b/src/Tetris/Stein.java @@ -140,13 +140,30 @@ Da aber die bei dieser formatierung das array falsch herum aufgebaut wird benöt Diese dreht dreht das array um sodas der stein richtig gezeigt werden kann * */ - public void steinRotiert() - { - int[][] rotierterstein = null; - rotierterstein = datenarrayflippen(coords); - rotierterstein = steineflippen(rotierterstein); - coords = rotierterstein; +public void steinRotiert() +{ + int[][] rotierterstein = null; + rotierterstein = datenarrayflippen(coords); + rotierterstein = steineflippen(rotierterstein); + //grenzen ueberprufeung damit wird gewährleistet das der stein nicht aus dem array/koordiantensystem/spielbrett raus geht + if ((x + rotierterstein[0].length > 10) || (y + rotierterstein.length > 20)) { + return; } + //ueberpruefung ob bereits ein stein im weg ist sollte dies sein kann der stein sich nicht drehen + for (int i = 0; i < rotierterstein.length; i++) { + for (int j = 0; j < rotierterstein[i].length; j++) { + if(rotierterstein[i][j] !=0) + { + if (board.getBoard()[y+i][x+j] !=null) + { + return; + } + } + } + + } + coords = rotierterstein; +} private int[][] datenarrayflippen(int[][] altesArray) { @@ -157,7 +174,6 @@ Diese dreht dreht das array um sodas der stein richtig gezeigt werden kann } } return updatedArray; - } private int[][] steineflippen(int[][] rotierenedesArray) @@ -169,10 +185,10 @@ Diese dreht dreht das array um sodas der stein richtig gezeigt werden kann rotierenedesArray[rotierenedesArray.length - i - 1] = rotiertesArray; } return rotierenedesArray; - } + public void speedup(){ delayTime=fast; }