isValidMove Henne fertig

pull/5/head
robinschumann 2022-11-29 18:33:15 +01:00
parent 0ce6fe08a8
commit 2e9615fb71
2 changed files with 50 additions and 24 deletions

View File

@ -8,12 +8,13 @@ public class Hennen extends Spielfigur {
// generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben // generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben
public boolean isValidMove(String zug, Spiel spiel) { public boolean isValidMove(String zug, Spiel spiel) {
char[][] spielbrettArray = new char[10][10];; char[][] spielbrettArray = new char[10][10];
spielbrettArray = spiel.getSpielbrettArray(); spielbrettArray = spiel.getSpielbrettArray();
// Form vom Zug: "5,5 4,5" // Form vom Zug: "5,5 4,5"
// Zug wurde getätigt.... // Zug wurde getätigt....
// Werte als Char // Werte als Char
char startKoordinate1 = zug.charAt(0); char startKoordinate1 = zug.charAt(0);
char startKoordinate2 = zug.charAt(2); char startKoordinate2 = zug.charAt(2);
char zielKoordinate1 = zug.charAt(4); char zielKoordinate1 = zug.charAt(4);
@ -28,20 +29,45 @@ public class Hennen extends Spielfigur {
int[] neueStartKoords = spiel.wandelPassendUm(startKoord1, startKoord2); int[] neueStartKoords = spiel.wandelPassendUm(startKoord1, startKoord2);
int[] neueZielKoords = spiel.wandelPassendUm(zielKoord1, zielKoord2); int[] neueZielKoords = spiel.wandelPassendUm(zielKoord1, zielKoord2);
//Werte angepasst auf unser Board // Werte angepasst auf unser Board, die Form des Zuges hat sich geändert von X,Y
int neueStartX = neueStartKoords[0]; // auf Y,X
int neueStartY = neueStartKoords[1]; int neueStartY = neueStartKoords[0];
int neueZielX = neueZielKoords[0]; int neueStartX = neueStartKoords[1];
int neueZielY = neueZielKoords[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 Zeil falsch // Fehler Spielsymbol beim Start oder Ziel falsch
if (spielbrettArray[neueStartX][neueStartY] != 'X') } 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"); System.out.println("Hennenmethode aufgerufen");
// return false;
return true; return true;
} }
} }

View File

@ -65,7 +65,7 @@ public class Spiel {
spielbrettArray[3][2] = '\u25A1'; spielbrettArray[3][2] = '\u25A1';
spielbrettArray[3][3] = '\u25A1'; spielbrettArray[3][3] = '\u25A1';
spielbrettArray[3][4] = '\u25A1'; spielbrettArray[3][4] = '\u25A1';
spielbrettArray[3][5] = '\u25A1'; spielbrettArray[3][5] = 'X';
spielbrettArray[3][6] = '\u25A1'; spielbrettArray[3][6] = '\u25A1';
spielbrettArray[3][7] = '\u25A1'; spielbrettArray[3][7] = '\u25A1';
spielbrettArray[3][8] = '\u25A1'; spielbrettArray[3][8] = '\u25A1';