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,18 +8,19 @@ public class Hennen extends Spielfigur {
// 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);
@ -28,20 +29,45 @@ public class Hennen extends Spielfigur {
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];
// 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 Zeil falsch
if (spielbrettArray[neueStartX][neueStartY] != 'X')
// 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;
}
}

View File

@ -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';