diff --git a/src/domain/Hennen.java b/src/domain/Hennen.java index ad28f30..c9bd708 100644 --- a/src/domain/Hennen.java +++ b/src/domain/Hennen.java @@ -8,7 +8,32 @@ public class Hennen extends Spielfigur { // generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben public static boolean isValidMove(String zug) { -// public boolean isValidMove(String zug) { + //Form vom Zug: "5,5 4,5" + + + //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 + 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]; + + System.out.println("Hennenmethode aufgerufen"); // return false; diff --git a/src/domain/Spiel.java b/src/domain/Spiel.java index 89dd7aa..31f0137 100644 --- a/src/domain/Spiel.java +++ b/src/domain/Spiel.java @@ -171,6 +171,443 @@ public class Spiel { return spielbrettArray; } + public static int[] wandelPassendUm(int umwandeln1, int umwandeln2) { + // Erlaubte Koordinaten sind: + // 3,0 / 4,0 / 5,0 - 3,1 / 4,1 / 5,1 - 3,2 / 4,2 / 5,2 + // 0,3 / 1,3 / 2,3 / 3,3 / 4,3 / 5,3 / 6,3 / 7,3 / 8,3 + // 0,4 / ... + // 0,5 / ... + // 3,6 / 4,6 / 5,6 - 3,7 / 4,7 / 5,7 - 3,8 / 4,8 / 5,8 + + // Fälle 3,0 / 4,0 / 5,0 + if (umwandeln1 == 3 && umwandeln2 == 0) { + umwandeln1 = 8; + umwandeln2 = 4; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + + } + if (umwandeln1 == 4 && umwandeln2 == 0) { + umwandeln1 = 8; + umwandeln2 = 5; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 0 ) { + umwandeln1 = 8 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + + // Fälle 3,1 / 4,1 / 5,1 + if (umwandeln1 == 3 && umwandeln2 == 1 ) { + umwandeln1 = 7 ; + umwandeln2 = 4 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + + } + if (umwandeln1 == 4 && umwandeln2 == 1 ) { + umwandeln1 = 7 ; + umwandeln2 = 5 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 4 && umwandeln2 == 1 ) { + umwandeln1 = 7 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + + // Fälle 3,2 / 4,2 / 5,2 + if (umwandeln1 == 3 && umwandeln2 == 2 ) { + umwandeln1 = 6 ; + umwandeln2 = 4 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + + } + if (umwandeln1 == 4 && umwandeln2 == 2 ) { + umwandeln1 = 6 ; + umwandeln2 = 5 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 2 ) { + umwandeln1 = 6 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + + // Fälle 0,3 - 8,3 + if (umwandeln1 == 0 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 1 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 1 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 2 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 2 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 3 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 3 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 4 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 4 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 5 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 6 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 7 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 7 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 8 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 8 && umwandeln2 == 3 ) { + umwandeln1 = 5 ; + umwandeln2 = 9 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + // Fälle 0,4 - 8,4 + if (umwandeln1 == 0 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 1 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 1 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 2 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 2 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 3 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 3 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 4 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 4 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 5 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 6 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 7 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 7 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 8 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 8 && umwandeln2 == 4 ) { + umwandeln1 = 4 ; + umwandeln2 = 9 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + + // Fälle 0,5 - 8,5 + if (umwandeln1 == 0 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 1 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 1 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 2 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 2 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 3 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 3 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 4 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 4 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 5 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 6 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 7 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 7 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 8 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 8 && umwandeln2 == 5 ) { + umwandeln1 = 3 ; + umwandeln2 = 9 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + + //Fälle 3,6 - 5,6 + if (umwandeln1 == 3 && umwandeln2 == 6) { + umwandeln1 = 2; + umwandeln2 = 4; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + + } + if (umwandeln1 == 4 && umwandeln2 == 6) { + umwandeln1 = 2; + umwandeln2 = 5; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 6 ) { + umwandeln1 = 2 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + //Fälle 3,7 - 5,7 + if (umwandeln1 == 3 && umwandeln2 == 7) { + umwandeln1 = 1; + umwandeln2 = 4; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + + } + if (umwandeln1 == 4 && umwandeln2 == 7) { + umwandeln1 = 1; + umwandeln2 = 5; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 7 ) { + umwandeln1 = 1 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + //Fälle 3,8 - 5,8 + if (umwandeln1 == 3 && umwandeln2 == 8) { + umwandeln1 = 0; + umwandeln2 = 4; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + + } + if (umwandeln1 == 4 && umwandeln2 == 8) { + umwandeln1 = 0; + umwandeln2 = 5; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + if (umwandeln1 == 5 && umwandeln2 == 8 ) { + umwandeln1 = 0 ; + umwandeln2 = 6 ; + + int[] umgewandelt = new int[2]; + umgewandelt[0] = umwandeln1; + umgewandelt[1] = umwandeln2; + return umgewandelt; + } + + return null; + + } } diff --git a/src/main/Main.java b/src/main/Main.java index 5ed84a8..5334700 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -15,6 +15,25 @@ public class Main { spiel.generiereSpielbrett(); spiel.printBoard(); + + String zug = "5,5 5,6"; + + char startKoordinate1 = zug.charAt(0); + char startKoordinate2 = zug.charAt(2); + char zielKoordinate1 = zug.charAt(4); + char zielKoordinate2 = zug.charAt(6); + + int startKoord1 = Character.getNumericValue(startKoordinate1); + int startKoord2 = Character.getNumericValue(startKoordinate2); + int zielKoord1 = Character.getNumericValue(zielKoordinate1); + int zielKoord2 = Character.getNumericValue(zielKoordinate2); + startKoord2 = startKoord2 %8; + + System.out.println(startKoord1); + System.out.println(startKoord2); + System.out.println(zielKoord1); + System.out.println(zielKoord2); + } }