isValidMove Henne fertig
parent
0ce6fe08a8
commit
2e9615fb71
|
@ -1,47 +1,73 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
public class Hennen extends Spielfigur {
|
public class Hennen extends Spielfigur {
|
||||||
|
|
||||||
public Hennen() {
|
public Hennen() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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....
|
||||||
|
// Werte als Char
|
||||||
|
|
||||||
//Zug wurde getätigt....
|
|
||||||
//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);
|
||||||
char zielKoordinate2 = zug.charAt(6);
|
char zielKoordinate2 = zug.charAt(6);
|
||||||
|
|
||||||
//Werte als int
|
// Werte als int
|
||||||
int startKoord1 = Character.getNumericValue(startKoordinate1);
|
int startKoord1 = Character.getNumericValue(startKoordinate1);
|
||||||
int startKoord2 = Character.getNumericValue(startKoordinate2);
|
int startKoord2 = Character.getNumericValue(startKoordinate2);
|
||||||
int zielKoord1 = Character.getNumericValue(zielKoordinate1);
|
int zielKoord1 = Character.getNumericValue(zielKoordinate1);
|
||||||
int zielKoord2 = Character.getNumericValue(zielKoordinate2);
|
int zielKoord2 = Character.getNumericValue(zielKoordinate2);
|
||||||
|
|
||||||
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];
|
||||||
|
|
||||||
//Fehler Spielsymbol beim Start oder Zeil falsch
|
// Zug fehleingabe
|
||||||
if (spielbrettArray[neueStartX][neueStartY] != 'X')
|
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");
|
System.out.println("Hennenmethode aufgerufen");
|
||||||
// return false;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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';
|
||||||
|
|
Loading…
Reference in New Issue