diff --git a/src/domain/Hennen.java b/src/domain/Hennen.java index 205e827..e24d836 100644 --- a/src/domain/Hennen.java +++ b/src/domain/Hennen.java @@ -1,47 +1,73 @@ package domain; public class Hennen extends Spielfigur { - + public Hennen() { - + } - + // generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben public boolean isValidMove(String zug, Spiel spiel) { - char[][] spielbrettArray = new char[10][10];; + char[][] spielbrettArray = new char[10][10]; spielbrettArray = spiel.getSpielbrettArray(); - //Form vom Zug: "5,5 4,5" + // Form vom Zug: "5,5 4,5" + + // Zug wurde getätigt.... + // Werte als Char - //Zug wurde getätigt.... - //Werte als Char char startKoordinate1 = zug.charAt(0); char startKoordinate2 = zug.charAt(2); char zielKoordinate1 = zug.charAt(4); char zielKoordinate2 = zug.charAt(6); - - //Werte als int + + // Werte als int int startKoord1 = Character.getNumericValue(startKoordinate1); int startKoord2 = Character.getNumericValue(startKoordinate2); int zielKoord1 = Character.getNumericValue(zielKoordinate1); int zielKoord2 = Character.getNumericValue(zielKoordinate2); - + int[] neueStartKoords = spiel.wandelPassendUm(startKoord1, startKoord2); int[] neueZielKoords = spiel.wandelPassendUm(zielKoord1, zielKoord2); - - //Werte angepasst auf unser Board - int neueStartX = neueStartKoords[0]; - int neueStartY = neueStartKoords[1]; - int neueZielX = neueZielKoords[0]; - int neueZielY = neueZielKoords[1]; - - - //Fehler Spielsymbol beim Start oder Zeil falsch - if (spielbrettArray[neueStartX][neueStartY] != 'X') - - + + // Werte angepasst auf unser Board, die Form des Zuges hat sich geändert von X,Y + // auf Y,X + int neueStartY = neueStartKoords[0]; + int neueStartX = neueStartKoords[1]; + int neueZielY = neueZielKoords[0]; + int neueZielX = neueZielKoords[1]; + + // Zug fehleingabe + if (neueStartKoords == null || neueZielKoords == null) { + System.out.println("Fehleingabe"); + return false; + + // Fehler Spielsymbol beim Start oder Ziel falsch + } else if (spielbrettArray[neueStartY][neueStartX] != 'X' + || spielbrettArray[neueZielY][neueZielX] != '\u25A1') { + System.out.println("Symbole an stellen falsch"); + return false; + + // Henne darf nicht zurückgehen, ZielY muss kleiner als Start sein + } else if (neueZielY > neueStartY) { + System.out.println("darf nicht rückwärts gehen"); + return false; + + // Henne darf seitlich gehen, nach rechts + } else if (neueStartX < neueZielX) { + if ((neueStartY == neueZielY) && ((neueStartX + 1) != neueZielX)) { + System.out.println("darf nur ein feld seitwärts gehen"); + return false; + } + // Henne darf seitlich gehen, nach links + } else if (neueStartX > neueZielX) { + if ((neueStartY == neueZielY) && ((neueStartX - 1) != neueZielX)) { + System.out.println("darf nur ein feld seitwärts gehen"); + return false; + } + + } System.out.println("Hennenmethode aufgerufen"); - // return false; return true; } } diff --git a/src/domain/Spiel.java b/src/domain/Spiel.java index c8ff6d0..b2f2906 100644 --- a/src/domain/Spiel.java +++ b/src/domain/Spiel.java @@ -65,7 +65,7 @@ public class Spiel { spielbrettArray[3][2] = '\u25A1'; spielbrettArray[3][3] = '\u25A1'; spielbrettArray[3][4] = '\u25A1'; - spielbrettArray[3][5] = '\u25A1'; + spielbrettArray[3][5] = 'X'; spielbrettArray[3][6] = '\u25A1'; spielbrettArray[3][7] = '\u25A1'; spielbrettArray[3][8] = '\u25A1';