BotHard und miniMax sind so gut wie fertig, fehlt nur noch die Bewertung der Züge
parent
b13e58d0d3
commit
75bc558ff3
|
@ -1,6 +1,5 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class BotHardFuchs extends Bot {
|
public class BotHardFuchs extends Bot {
|
||||||
|
@ -14,15 +13,27 @@ public class BotHardFuchs extends Bot {
|
||||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||||
char[][] kopieSpielbrett = Arrays.stream(spielbrettArray).map(char[]::clone).toArray(char[][]::new);
|
char[][] kopieSpielbrett = Arrays.stream(spielbrettArray).map(char[]::clone).toArray(char[][]::new);
|
||||||
|
|
||||||
ArrayList<String> alleZüge = new ArrayList<>();
|
// ArrayList<String> alleZüge = new ArrayList<>();
|
||||||
|
|
||||||
alleZüge = spiel.alleZügeFuchs(kopieSpielbrett, spiel);
|
// long start = System.currentTimeMillis();
|
||||||
for (String züge : alleZüge) {
|
// alleZüge = spiel.alleZügeFuchs(kopieSpielbrett, spiel);
|
||||||
System.out.println(züge);
|
// for (String züge : alleZüge) {
|
||||||
}
|
// System.out.println(züge);
|
||||||
|
// }
|
||||||
|
// long end = System.currentTimeMillis();
|
||||||
|
// System.out.println("--------------------------------------------------------");
|
||||||
|
// System.out.println(end - start);
|
||||||
|
// System.out.println("--------------------------------------------------------");
|
||||||
|
|
||||||
int bewertung = spiel.miniMax(kopieSpielbrett, null, 1, false, spiel);
|
long start = System.currentTimeMillis();
|
||||||
|
int bewertung = spiel.miniMax(kopieSpielbrett, null, 5, false, spiel);
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
System.out.println("--------------------------------------------------------");
|
||||||
|
System.out.println(end - start);
|
||||||
|
System.out.println("--------------------------------------------------------");
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println(bewertung);
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("HIER IST ENDE FÜR BOTHARDFUCHS! -----------------------------------------------------------------");
|
System.out.println("HIER IST ENDE FÜR BOTHARDFUCHS! -----------------------------------------------------------------");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class BotHardHenne extends Bot {
|
public class BotHardHenne extends Bot {
|
||||||
|
@ -14,15 +13,27 @@ public class BotHardHenne extends Bot {
|
||||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||||
char[][] kopieSpielbrett = Arrays.stream(spielbrettArray).map(char[]::clone).toArray(char[][]::new);
|
char[][] kopieSpielbrett = Arrays.stream(spielbrettArray).map(char[]::clone).toArray(char[][]::new);
|
||||||
|
|
||||||
ArrayList<String> alleZüge = new ArrayList<>();
|
// ArrayList<String> alleZüge = new ArrayList<>();
|
||||||
|
|
||||||
alleZüge = spiel.alleZügeHennen(kopieSpielbrett, spiel);
|
|
||||||
for (String züge : alleZüge) {
|
|
||||||
System.out.println(züge);
|
|
||||||
}
|
|
||||||
|
|
||||||
int bewertung = spiel.miniMax(kopieSpielbrett, null, 1, true, spiel);
|
// long start = System.currentTimeMillis();
|
||||||
|
// alleZüge = spiel.alleZügeHennen(kopieSpielbrett, spiel);
|
||||||
|
// for (String züge : alleZüge) {
|
||||||
|
// System.out.println(züge);
|
||||||
|
// }
|
||||||
|
// long end = System.currentTimeMillis();
|
||||||
|
// System.out.println("--------------------------------------------------------");
|
||||||
|
// System.out.println(end - start);
|
||||||
|
// System.out.println("--------------------------------------------------------");
|
||||||
|
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
int bewertung = spiel.miniMax(kopieSpielbrett, null, 5, true, spiel);
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
System.out.println("--------------------------------------------------------");
|
||||||
|
System.out.println(end - start);
|
||||||
|
System.out.println("--------------------------------------------------------");
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println(bewertung);
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("HIER IST ENDE FÜR BOTHARDHENNE! -----------------------------------------------------------------");
|
System.out.println("HIER IST ENDE FÜR BOTHARDHENNE! -----------------------------------------------------------------");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
|
@ -198,6 +198,7 @@ public class Spiel {
|
||||||
return zug;
|
return zug;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// überprüfen wann und ob die Hennen gewonnen haben
|
||||||
public boolean gewinnBedingungHennen() {
|
public boolean gewinnBedingungHennen() {
|
||||||
if (spielbrettArray[0][4] == 'X' && spielbrettArray[0][5] == 'X' && spielbrettArray[0][6] == 'X'
|
if (spielbrettArray[0][4] == 'X' && spielbrettArray[0][5] == 'X' && spielbrettArray[0][6] == 'X'
|
||||||
&& spielbrettArray[1][4] == 'X' && spielbrettArray[1][5] == 'X' && spielbrettArray[1][6] == 'X'
|
&& spielbrettArray[1][4] == 'X' && spielbrettArray[1][5] == 'X' && spielbrettArray[1][6] == 'X'
|
||||||
|
@ -206,6 +207,7 @@ public class Spiel {
|
||||||
}
|
}
|
||||||
int spielfigurExistiert = 0;
|
int spielfigurExistiert = 0;
|
||||||
|
|
||||||
|
// wenn kein Fuchs mehr existiert, dann ist automatisch gewonnen
|
||||||
for (int i = 0; i < spielbrettArray.length; i++) {
|
for (int i = 0; i < spielbrettArray.length; i++) {
|
||||||
for (int k = 0; k < spielbrettArray[i].length; k++) {
|
for (int k = 0; k < spielbrettArray[i].length; k++) {
|
||||||
if (spielbrettArray[i][k] == 'O') {
|
if (spielbrettArray[i][k] == 'O') {
|
||||||
|
@ -222,6 +224,7 @@ public class Spiel {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// überprüfen wann und ob der Fuchs gewonnen hat
|
||||||
public boolean gewinnBedingungFuchs() {
|
public boolean gewinnBedingungFuchs() {
|
||||||
int spielfigurExistiert = 0;
|
int spielfigurExistiert = 0;
|
||||||
|
|
||||||
|
@ -238,9 +241,11 @@ public class Spiel {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// prüfen ob und wie viele Spielfiguren eines Typs momentan auf dem Spielbrett existieren
|
||||||
public ArrayList<String> spielfigurExistiert(Spielfigur spielfigur) {
|
public ArrayList<String> spielfigurExistiert(Spielfigur spielfigur) {
|
||||||
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
||||||
|
|
||||||
|
// überprüfen wie viele Füchse momentan existieren, bei 2 ist Schluss, weil mehr können nicht gleichzeitig existieren
|
||||||
if(spielfigur instanceof Fuchs) {
|
if(spielfigur instanceof Fuchs) {
|
||||||
for(int i = 0; i < spielbrettArray.length; i++ )
|
for(int i = 0; i < spielbrettArray.length; i++ )
|
||||||
{
|
{
|
||||||
|
@ -256,6 +261,7 @@ public class Spiel {
|
||||||
return spielfigurExistiert;
|
return spielfigurExistiert;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// überprüfen wie viele Hennen momentan existieren, bei 27 ist Schluss, weil mehr können nicht gleichzeitig existieren
|
||||||
if(spielfigur instanceof Hennen) {
|
if(spielfigur instanceof Hennen) {
|
||||||
for(int i = 0; i < spielbrettArray.length; i++ )
|
for(int i = 0; i < spielbrettArray.length; i++ )
|
||||||
{
|
{
|
||||||
|
@ -273,21 +279,27 @@ public class Spiel {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// rekursiver Aufruf zum Vorhersagen und bewerten der möglichen Züge die der Computer und Mensch tätigen könnten
|
||||||
public int miniMax(char[][] kopieSpielbrett, String zug, int tiefe, boolean maxPlayer, Spiel spiel) {
|
public int miniMax(char[][] kopieSpielbrett, String zug, int tiefe, boolean maxPlayer, Spiel spiel) {
|
||||||
|
// wenn Vorhersagungstiefe erreicht, dann aktuellen Zug bewerten
|
||||||
if(tiefe == 0) {
|
if(tiefe == 0) {
|
||||||
int bewertung = bewerteSpielzug(zug);
|
int bewertung = bewerteSpielzug(zug, maxPlayer);
|
||||||
|
// System.out.println(bewertung);
|
||||||
return bewertung;
|
return bewertung;
|
||||||
}
|
}
|
||||||
|
// wenn Henne dran ist, dann vorhersagen welche Züge die Henne tätigen könnte
|
||||||
if(maxPlayer == true) {
|
if(maxPlayer == true) {
|
||||||
int maxWert = (-9999);
|
int maxWert = -9999;
|
||||||
ArrayList<String> potenzielleZüge = getMoves(kopieSpielbrett, maxPlayer, spiel);
|
ArrayList<String> potenzielleZüge = getMoves(kopieSpielbrett, maxPlayer, spiel);
|
||||||
|
|
||||||
|
// mit einem bestimmten Spielzug der Henne rekursiv vorhersagen wie optimal dieser ist
|
||||||
for(int i = 0; i< potenzielleZüge.size(); i++) {
|
for(int i = 0; i< potenzielleZüge.size(); i++) {
|
||||||
zug = potenzielleZüge.get(i);
|
zug = potenzielleZüge.get(i);
|
||||||
|
// Henne verschieben simulieren
|
||||||
ändereWertImArray(Character.getNumericValue(zug.charAt(0)), Character.getNumericValue(zug.charAt(2)), '\u25A1');
|
ändereWertImArray(Character.getNumericValue(zug.charAt(0)), Character.getNumericValue(zug.charAt(2)), '\u25A1');
|
||||||
ändereWertImArray(Character.getNumericValue(zug.charAt(4)), Character.getNumericValue(zug.charAt(6)), 'X');
|
ändereWertImArray(Character.getNumericValue(zug.charAt(4)), Character.getNumericValue(zug.charAt(6)), 'X');
|
||||||
|
|
||||||
|
// rekursiv die Tiefe der Vorhersagung ändern
|
||||||
int wert = miniMax(kopieSpielbrett, zug, tiefe-1, false, spiel);
|
int wert = miniMax(kopieSpielbrett, zug, tiefe-1, false, spiel);
|
||||||
if(wert > maxWert) {
|
if(wert > maxWert) {
|
||||||
maxWert = wert;
|
maxWert = wert;
|
||||||
|
@ -296,35 +308,71 @@ public class Spiel {
|
||||||
ändereWertImArray(Character.getNumericValue(zug.charAt(4)), Character.getNumericValue(zug.charAt(6)), '\u25A1');
|
ändereWertImArray(Character.getNumericValue(zug.charAt(4)), Character.getNumericValue(zug.charAt(6)), '\u25A1');
|
||||||
}
|
}
|
||||||
return maxWert;
|
return maxWert;
|
||||||
|
|
||||||
|
// wenn Fuchs dran ist, dann vorhersagen welche Züge der Fuchs tätigen könnte
|
||||||
} else {
|
} else {
|
||||||
int minWert = 9999;
|
int minWert = 9999;
|
||||||
ArrayList<String> potenzielleZüge = getMoves(kopieSpielbrett, maxPlayer, spiel);
|
ArrayList<String> potenzielleZüge = getMoves(kopieSpielbrett, maxPlayer, spiel);
|
||||||
|
|
||||||
|
// mit einem bestimmten Spielzug der Füchse rekursiv vorhersagen wie optimal dieser ist
|
||||||
for(int i = 0; i< potenzielleZüge.size(); i++) {
|
for(int i = 0; i< potenzielleZüge.size(); i++) {
|
||||||
zug = potenzielleZüge.get(i);
|
zug = potenzielleZüge.get(i);
|
||||||
|
|
||||||
// Änderung ist noch nicht wirklich richtig für den Fuchs ---------------------------------------------------------------------
|
// alle speziellen Züge werden gesondert aufgeteilt und verändern das Spielbrett gesondert
|
||||||
ändereWertImArray(zug.charAt(0), zug.charAt(2), '\u25A1');
|
if(zug.length() != 7) {
|
||||||
ändereWertImArray(zug.charAt(4), zug.charAt(6), 'O');
|
int anzahlZüge = zug.length() / 4;
|
||||||
|
String zwischenzug;
|
||||||
|
|
||||||
int wert = miniMax(kopieSpielbrett, zug, tiefe-1, true, spiel);
|
// der erste Wert im Zug kann sofort verändert werden
|
||||||
if(wert > minWert) {
|
ändereWertImArray(Character.getNumericValue(zug.charAt(0)), Character.getNumericValue(zug.charAt(2)), '\u25A1');
|
||||||
minWert = wert;
|
|
||||||
|
// Schleife um die Henne zu killen und um den Fuchs zu verschieben
|
||||||
|
for(int zugZähler = 2, beginnChar = 4, endeChar = 12; zugZähler <= anzahlZüge; zugZähler += 2, beginnChar += 8, endeChar += 8) {
|
||||||
|
zwischenzug = zug.substring(beginnChar, endeChar);
|
||||||
|
|
||||||
|
ändereWertImArray(Character.getNumericValue(zwischenzug.charAt(0)), Character.getNumericValue(zwischenzug.charAt(2)), '\u25A1');
|
||||||
|
ändereWertImArray(Character.getNumericValue(zwischenzug.charAt(4)), Character.getNumericValue(zwischenzug.charAt(6)), 'O');
|
||||||
|
}
|
||||||
|
// rekursiv die Tiefe der Vorhersagung ändern
|
||||||
|
int wert = miniMax(kopieSpielbrett, zug, tiefe-1, true, spiel);
|
||||||
|
if(wert > minWert) {
|
||||||
|
minWert = wert;
|
||||||
|
}
|
||||||
|
// der erste Wert im Zug wird sofort wieder rückgängig gemacht
|
||||||
|
ändereWertImArray(Character.getNumericValue(zug.charAt(0)), Character.getNumericValue(zug.charAt(2)), 'O');
|
||||||
|
|
||||||
|
// Schleife um die Henne quasi wiederzubeleben und um den Fuchs wieder zurück zu verändern
|
||||||
|
for(int zugZähler = 2, beginnChar = 4, endeChar = 12; zugZähler <= anzahlZüge; zugZähler += 2, beginnChar += 8, endeChar += 8) {
|
||||||
|
zwischenzug = zug.substring(beginnChar, endeChar);
|
||||||
|
|
||||||
|
ändereWertImArray(Character.getNumericValue(zwischenzug.charAt(0)), Character.getNumericValue(zwischenzug.charAt(2)), 'X');
|
||||||
|
ändereWertImArray(Character.getNumericValue(zwischenzug.charAt(4)), Character.getNumericValue(zwischenzug.charAt(6)), '\u25A1');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// bei einem normalen Zug ohne eine Henne zu killen, wird das Spielbrett normal verändert
|
||||||
|
ändereWertImArray(Character.getNumericValue(zug.charAt(0)), Character.getNumericValue(zug.charAt(2)), '\u25A1');
|
||||||
|
ändereWertImArray(Character.getNumericValue(zug.charAt(4)), Character.getNumericValue(zug.charAt(6)), 'O');
|
||||||
|
|
||||||
|
int wert = miniMax(kopieSpielbrett, zug, tiefe-1, true, spiel);
|
||||||
|
if(wert > minWert) {
|
||||||
|
minWert = wert;
|
||||||
|
}
|
||||||
|
ändereWertImArray(Character.getNumericValue(zug.charAt(0)), Character.getNumericValue(zug.charAt(2)), 'O');
|
||||||
|
ändereWertImArray(Character.getNumericValue(zug.charAt(4)), Character.getNumericValue(zug.charAt(6)), '\u25A1');
|
||||||
}
|
}
|
||||||
// Änderung ist noch nicht wirklich richtig für den Fuchs ---------------------------------------------------------------------
|
|
||||||
ändereWertImArray(zug.charAt(0), zug.charAt(2), 'O');
|
|
||||||
ändereWertImArray(zug.charAt(4), zug.charAt(6), '\u25A1');
|
|
||||||
}
|
}
|
||||||
return minWert;
|
return minWert;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int bewerteSpielzug(String zug) {
|
// getätigten Spielzug bewerten
|
||||||
int bewertung = 0;
|
public int bewerteSpielzug(String zug, boolean maxPlayer) {
|
||||||
|
int bewertung = 5;
|
||||||
|
|
||||||
return bewertung;
|
return bewertung;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Liste mit allen möglichen Zügen der Spielfigur erstellen
|
||||||
public ArrayList<String> getMoves(char[][] kopieSpielbrett, boolean maxPlayer, Spiel spiel) {
|
public ArrayList<String> getMoves(char[][] kopieSpielbrett, boolean maxPlayer, Spiel spiel) {
|
||||||
if(maxPlayer == true) {
|
if(maxPlayer == true) {
|
||||||
return alleZügeHennen(kopieSpielbrett, spiel);
|
return alleZügeHennen(kopieSpielbrett, spiel);
|
||||||
|
@ -333,6 +381,7 @@ public class Spiel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// packt alle möglichen Hennen Züge in eine ArrayList und übergibt sie getMoves
|
||||||
public ArrayList<String> alleZügeHennen(char[][] kopieSpielbrett, Spiel spiel) {
|
public ArrayList<String> alleZügeHennen(char[][] kopieSpielbrett, Spiel spiel) {
|
||||||
ArrayList<String> alleZüge = new ArrayList<>();
|
ArrayList<String> alleZüge = new ArrayList<>();
|
||||||
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
||||||
|
@ -350,6 +399,7 @@ public class Spiel {
|
||||||
int altX = Character.getNumericValue(random.charAt(2));
|
int altX = Character.getNumericValue(random.charAt(2));
|
||||||
|
|
||||||
int neuY = altY;
|
int neuY = altY;
|
||||||
|
// links und rechts von der Henne frei?
|
||||||
for(int x = altX - 1; x < altX + 2; x += 2) {
|
for(int x = altX - 1; x < altX + 2; x += 2) {
|
||||||
if(x == 0 || x == 10) {
|
if(x == 0 || x == 10) {
|
||||||
if(x == 0) {
|
if(x == 0) {
|
||||||
|
@ -359,7 +409,7 @@ public class Spiel {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(kopieSpielbrett[altY][x] == '\u25A1') {
|
if(getWertAusArray(altY, x) == '\u25A1') {
|
||||||
zug = altY + "," + altX + " " + altY + "," + x;
|
zug = altY + "," + altX + " " + altY + "," + x;
|
||||||
alleZüge.add(zug);
|
alleZüge.add(zug);
|
||||||
}
|
}
|
||||||
|
@ -367,7 +417,8 @@ public class Spiel {
|
||||||
if(neuY - 1 == -1) {
|
if(neuY - 1 == -1) {
|
||||||
// tue nichts
|
// tue nichts
|
||||||
} else {
|
} else {
|
||||||
if(kopieSpielbrett[neuY - 1][altX] == '\u25A1') {
|
// über der Henne frei?
|
||||||
|
if(getWertAusArray(altY - 1, altX) == '\u25A1') {
|
||||||
zug = altY + "," + altX + " " + (neuY - 1) + "," + altX;
|
zug = altY + "," + altX + " " + (neuY - 1) + "," + altX;
|
||||||
alleZüge.add(zug);
|
alleZüge.add(zug);
|
||||||
}
|
}
|
||||||
|
@ -377,11 +428,11 @@ public class Spiel {
|
||||||
return alleZüge;
|
return alleZüge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// packt alle möglichen Fuchs Züge in eine ArrayList und übergibt sie getMoves
|
||||||
public ArrayList<String> alleZügeFuchs(char[][] kopieSpielbrett, Spiel spiel) {
|
public ArrayList<String> alleZügeFuchs(char[][] kopieSpielbrett, Spiel spiel) {
|
||||||
ArrayList<String> alleZüge = new ArrayList<>();
|
ArrayList<String> alleZüge = new ArrayList<>();
|
||||||
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
||||||
Spielfigur fuchs = new Fuchs();
|
Spielfigur fuchs = new Fuchs();
|
||||||
String zug;
|
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
|
|
||||||
spielfigurExistiert = spielfigurExistiert(fuchs);
|
spielfigurExistiert = spielfigurExistiert(fuchs);
|
||||||
|
@ -390,43 +441,202 @@ public class Spiel {
|
||||||
int index = rand.nextInt(spielfigurExistiert.size());
|
int index = rand.nextInt(spielfigurExistiert.size());
|
||||||
String random = spielfigurExistiert.get(index);
|
String random = spielfigurExistiert.get(index);
|
||||||
|
|
||||||
int altY = Character.getNumericValue(random.charAt(0));
|
// rekursiver Aufruf zum überprüfen welche Züge ein bestimmter Fuchs gehen kann
|
||||||
int altX = Character.getNumericValue(random.charAt(2));
|
rekursivFuchsZug(kopieSpielbrett, random, null, alleZüge);
|
||||||
|
|
||||||
for(int y = altY - 1; y < altY + 2; y++) {
|
|
||||||
if(y == -1 || y == 9) {
|
|
||||||
if(y == -1) {
|
|
||||||
y++;
|
|
||||||
}
|
|
||||||
if(y == 9) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(int x = altX - 1; x < altX + 2; x++) {
|
|
||||||
if(kopieSpielbrett[y][x] == kopieSpielbrett[altY][altX] || x == 0 || x == 10) {
|
|
||||||
if(kopieSpielbrett[y][x] == kopieSpielbrett[altY][altX]) {
|
|
||||||
x++;
|
|
||||||
}
|
|
||||||
if(x == 0) {
|
|
||||||
x++;
|
|
||||||
}
|
|
||||||
if(x == 10) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// hier fehlt dem Bot noch das er Hennen erkennt bze. killen kann ------------------------------------------------------------
|
|
||||||
if(kopieSpielbrett[y][x] == '\u25A1') {
|
|
||||||
zug = altY + "," + altX + " " + y + "," + x;
|
|
||||||
alleZüge.add(zug);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
spielfigurExistiert.remove(index);
|
spielfigurExistiert.remove(index);
|
||||||
} while(spielfigurExistiert.size() > 0);
|
} while(spielfigurExistiert.size() > 0);
|
||||||
return alleZüge;
|
return alleZüge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// es wird rekursiv überprüft welche Züge ein bestimmter Fuchs gehen kann
|
||||||
|
// rekursiv ist es nur damit der zurückgegebene String eine bestimmte Schreibweise hat
|
||||||
|
public void rekursivFuchsZug(char[][] kopieSpielbrett, String startKoordinate, String zgeKoordinaten, ArrayList<String> alleZüge) {
|
||||||
|
String zug = null;
|
||||||
|
String neueStartkoordinate;
|
||||||
|
|
||||||
|
int altY = Character.getNumericValue(startKoordinate.charAt(0));
|
||||||
|
int altX = Character.getNumericValue(startKoordinate.charAt(2));
|
||||||
|
|
||||||
|
// über und unter dem Fuchs überprüfen
|
||||||
|
for(int y = altY - 1; y < altY + 2; y++) {
|
||||||
|
if(y == -1 || y == 9) {
|
||||||
|
if(y == -1) {
|
||||||
|
y++;
|
||||||
|
}
|
||||||
|
if(y == 9) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// seitlich vom Fuchs überprüfen
|
||||||
|
for(int x = altX - 1; x < altX + 2; x++) {
|
||||||
|
if(y == altY && x == altX || x == 0 || x == 10) {
|
||||||
|
if(y == altY && x == altX) {
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
if(x == 0) {
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
if(x == 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// wenn Feld leer, dann vermerken
|
||||||
|
if(getWertAusArray(y, x) == '\u25A1') {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x;
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
// wenn eine Henne zu killen ist und sich diese auf einem validen Feld befindet, dann rekursiv vermerken
|
||||||
|
if(getWertAusArray(y, x) == 'X' && y - 1 != -1 && y + 1 != 9 && x - 1 != 0 && x + 1 != 10 && henneInSafeZone(y, x) == false) {
|
||||||
|
if(y - altY == 1 || y - altY == -1) {
|
||||||
|
if(x - altX == 1 || x - altX == -1) {
|
||||||
|
if(x - altX == 1) {
|
||||||
|
if(y - altY == 1) {
|
||||||
|
if(getWertAusArray(y + 1, x + 1) == '\u25A1') {
|
||||||
|
// wenn von der Startkoordinate aus noch keine Henne gekillt wurde, dann so vermerken
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + (y + 1) + "," + (x + 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
// wenn von der Startkoordinate aus schon Hennen gekillt wurden, dann gestapelt vermerken
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + (y + 1) + "," + (x + 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
// Henne killen und Fuchs verschieben simulieren
|
||||||
|
neueStartkoordinate = (y + 1) + "," + (x + 1);
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray((y + 1), (x + 1), 'O');
|
||||||
|
// rekursiv von der neuen und veränderten Position aus erneut überprüfen
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray((y + 1), (x + 1), '\u25A1');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(getWertAusArray(y - 1, x - 1) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + (y - 1) + "," + (x + 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + (y - 1) + "," + (x + 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = (y - 1) + "," + (x + 1);
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray((y - 1), (x + 1), 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray((y - 1), (x + 1), '\u25A1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(y - altY == 1) {
|
||||||
|
if(getWertAusArray(y + 1, x + 1) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + (y + 1) + "," + (x - 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + (y + 1) + "," + (x - 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = (y + 1) + "," + (x - 1);
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray((y + 1), (x - 1), 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray((y + 1), (x - 1), '\u25A1');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(getWertAusArray(y - 1, x - 1) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + (y - 1) + "," + (x - 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + (y - 1) + "," + (x - 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = (y - 1) + "," + (x - 1);
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray((y - 1), (x - 1), 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray((y - 1), (x - 1), '\u25A1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if(y - altY == 1) {
|
||||||
|
if(getWertAusArray(y + 1, x) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + (y + 1) + "," + x + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + (y + 1) + "," + x + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = (y + 1) + "," + x;
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray((y + 1), x, 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray((y + 1), x, '\u25A1');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(getWertAusArray(y - 1, x) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + (y - 1) + "," + x + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + (y - 1) + "," + x + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = (y - 1) + "," + x;
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray((y - 1), x, 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray((y - 1), x, '\u25A1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if(x - altX == 1 || x - altX == -1) {
|
||||||
|
if(x - altX == 1) {
|
||||||
|
if(getWertAusArray(y, x + 1) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + y + "," + (x + 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + y + "," + (x + 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = y + "," + (x + 1);
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray(y, (x + 1), 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray(y, (x + 1), '\u25A1');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(getWertAusArray(y, x - 1) == '\u25A1') {
|
||||||
|
if(zgeKoordinaten == null) {
|
||||||
|
zug = altY + "," + altX + " " + y + "," + x + " " + y + "," + (x - 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
if(zgeKoordinaten != null) {
|
||||||
|
zug = zgeKoordinaten + y + "," + x + " " + y + "," + (x - 1) + " ";
|
||||||
|
alleZüge.add(zug);
|
||||||
|
}
|
||||||
|
neueStartkoordinate = y + "," + (x - 1);
|
||||||
|
ändereWertImArray(altY, altX, '\u25A1'); ändereWertImArray(y, x, '\u25A1'); ändereWertImArray(y, (x - 1), 'O');
|
||||||
|
rekursivFuchsZug(kopieSpielbrett, neueStartkoordinate, zug, alleZüge);
|
||||||
|
ändereWertImArray(altY, altX, 'O'); ändereWertImArray(y, x, 'X'); ändereWertImArray(y, (x - 1), '\u25A1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// quasi von der Fuchs Klasse kopiert
|
||||||
|
public boolean henneInSafeZone(int yAchse, int xAchse) {
|
||||||
|
if (yAchse <= 2 && (xAchse == 4 || xAchse == 5 || xAchse == 6)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// wandelt Koordinaten von Array Schreibweise in menschliche Schreibweise um
|
||||||
public int[] wandelUmgekehrtUm(int umwandeln1, int umwandeln2, int umwandeln3, int umwandeln4) {
|
public int[] wandelUmgekehrtUm(int umwandeln1, int umwandeln2, int umwandeln3, int umwandeln4) {
|
||||||
int[] umgewandelt = new int[4];
|
int[] umgewandelt = new int[4];
|
||||||
umgewandelt[0] = (umwandeln2 - 1);
|
umgewandelt[0] = (umwandeln2 - 1);
|
||||||
|
@ -437,6 +647,7 @@ public class Spiel {
|
||||||
return umgewandelt;
|
return umgewandelt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// wandelt Koordinaten von menschlicher Schreibweise in Array Schreibweise um
|
||||||
public int[] wandelPassendUm(int umwandeln1, int umwandeln2) {
|
public int[] wandelPassendUm(int umwandeln1, int umwandeln2) {
|
||||||
int[] umgewandelt = new int[2];
|
int[] umgewandelt = new int[2];
|
||||||
umgewandelt[0] = (8 - umwandeln2);
|
umgewandelt[0] = (8 - umwandeln2);
|
||||||
|
@ -444,448 +655,4 @@ public class Spiel {
|
||||||
|
|
||||||
return umgewandelt;
|
return umgewandelt;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// public 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 == 5 && 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;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //Fehlerwert ist 1000
|
|
||||||
// int[] umgewandelt = new int[2];
|
|
||||||
// umgewandelt[0] = 1000;
|
|
||||||
// umgewandelt[1] = 1000;
|
|
||||||
// return umgewandelt;
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue