Bot funktionieren wieder und Bot Fuchs verbessert. Änderungen an wandelPassendUm gemacht

pull/5/head
Nico Piehl 2022-12-11 00:37:48 +01:00
parent c5f19d63d5
commit ba865876fc
4 changed files with 588 additions and 515 deletions

View File

@ -11,18 +11,7 @@ public class BotEasyFuchs extends Bot {
char[][] spielbrettArray = spiel.getSpielbrettArray();
ArrayList<String> spielfigurExistiert = new ArrayList<>();
for(int i = 0; i < spielbrettArray.length; i++ )
{
for(int k = 0; k < spielbrettArray[i].length; k++ ){
if(spielbrettArray[i][k] == 'O') {
spielfigurExistiert.add(i + "," + k);
}
}
if(spielfigurExistiert.size() == 2) {
break;
}
}
spielfigurExistiert = spiel.spielfigurExistiert(fuchs);
int altY, altX, neuY = 0, neuX = 0;
Random rand = new Random();
@ -34,15 +23,43 @@ public class BotEasyFuchs extends Bot {
altX = Character.getNumericValue(random.charAt(2));
do {
// neuY = rand.nextInt(((altY + 1) - (altY - 1)) + 1) + (altY - 1);
// neuX = rand.nextInt(((altX + 1) - (altX - 1)) + 1) + (altX - 1);
do {
neuY = rand.nextInt(((altY + 1) - (altY - 1)) + 1) + (altY - 1);
neuX = rand.nextInt(((altX + 1) - (altX - 1)) + 1) + (altX - 1);
} while(neuY == altY && neuX == altX || neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
neuY = rand.nextInt(9);
neuX = rand.nextInt(9) + 1;
if(spielbrettArray[neuY][neuX] == 'X') {
// noch zu ändern wenn der Fuchs auch diagonal nach Hennen Kill springen kann ----------------------------------------------
int neuY2 = neuY; int zähler1 = 0;
do {
if(zähler1 == 6) {
break;
}
neuY2 = rand.nextInt(((neuY + 1) - (neuY - 1)) + 1) + (neuY - 1);
zähler1++;
} while(neuY2 == altY || neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
if(neuY2 == neuY){
int neuX2 = neuX; int zähler2 = 0;
do {
if(zähler2 == 6) {
break;
}
neuX2 = rand.nextInt(((neuX + 1) - (neuX - 1)) + 1) + (neuX - 1);
zähler2++;
} while(neuX2 == neuX || neuX2 == altX || neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
neuX = neuX2;
}
neuY = neuY2;
}
} while (neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
zug = altY + "," + altX + " " + neuY + "," + neuX;
int[] koordinatenUmgewandelt = spiel.wandelUmgekehrtUm(altY, altX, neuY, neuX);
zug = koordinatenUmgewandelt[0] + "," + koordinatenUmgewandelt[1] + " "
+ koordinatenUmgewandelt[2] + "," + koordinatenUmgewandelt[3];
} while(fuchs.oberIsValidMove(zug, spiel) == false);

View File

@ -8,17 +8,9 @@ public class BotEasyHenne extends Bot {
@Override
public String zugBestimmen(Spiel spiel, Spielfigur henne) {
String zug;
char[][] spielbrettArray = spiel.getSpielbrettArray();
ArrayList<String> spielfigurExistiert = new ArrayList<>();
for(int i = 0; i < spielbrettArray.length; i++ )
{
for(int k = 0; k < spielbrettArray[i].length; k++ ){
if(spielbrettArray[i][k] == 'X') {
spielfigurExistiert.add(i + "," + k);
}
}
}
spielfigurExistiert = spiel.spielfigurExistiert(henne);
int altY, altX, neuY = 0, neuX = 0;
Random rand = new Random();
@ -38,7 +30,9 @@ public class BotEasyHenne extends Bot {
}
} while (neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
zug = altY + "," + altX + " " + neuY + "," + neuX;
int[] koordinatenUmgewandelt = spiel.wandelUmgekehrtUm(altY, altX, neuY, neuX);
zug = koordinatenUmgewandelt[0] + "," + koordinatenUmgewandelt[1] + " "
+ koordinatenUmgewandelt[2] + "," + koordinatenUmgewandelt[3];
} while(henne.oberIsValidMove(zug, spiel) == false);

View File

@ -1,5 +1,7 @@
package domain;
import java.util.ArrayList;
public class Spiel {
private String spielname;
@ -181,447 +183,554 @@ public class Spiel {
spielbrettArray[y][x] = symbol;
}
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
public String yourMove(Spiel spiel, Bot ki, Spielfigur computer) {
String zug = ki.zugBestimmen(spiel, computer);
// Fälle 3,0 / 4,0 / 5,0
if (umwandeln1 == 3 && umwandeln2 == 0) {
umwandeln1 = 8;
umwandeln2 = 4;
int[] neueKoordinaten = spiel.berechneRichtigeKoordinaten(zug);
int neueStartY = neueKoordinaten[0];
int neueStartX = neueKoordinaten[1];
int neueZielY = neueKoordinaten[2];
int neueZielX = neueKoordinaten[3];
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;
computer.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
return zug;
}
public boolean gewinnBedingungHennen() {
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[2][4] == 'X' && spielbrettArray[2][5] == 'X' && spielbrettArray[2][6] == 'X') {
return true;
}
int spielfigurExistiert = 0;
for (int i = 0; i < spielbrettArray.length; i++) {
for (int k = 0; k < spielbrettArray[i].length; k++) {
if (spielbrettArray[i][k] == 'O') {
spielfigurExistiert++;
}
}
if (spielfigurExistiert >= 1) {
return false;
}
}
if (spielfigurExistiert == 0) {
return true;
}
return false;
}
public boolean gewinnBedingungFuchs() {
int spielfigurExistiert = 0;
for (int i = 0; i < spielbrettArray.length; i++) {
for (int k = 0; k < spielbrettArray[i].length; k++) {
if (spielbrettArray[i][k] == 'X') {
spielfigurExistiert++;
}
}
if (spielfigurExistiert > 8) {
return false;
}
}
return false;
}
public ArrayList<String> spielfigurExistiert(Spielfigur spielfigur) {
ArrayList<String> spielfigurExistiert = new ArrayList<>();
if(spielfigur instanceof Fuchs) {
for(int i = 0; i < spielbrettArray.length; i++ )
{
for(int k = 0; k < spielbrettArray[i].length; k++ ){
if(spielbrettArray[i][k] == 'O') {
spielfigurExistiert.add(i + "," + k);
}
}
if(spielfigurExistiert.size() == 2) {
break;
}
}
return spielfigurExistiert;
}
if(spielfigur instanceof Hennen) {
for(int i = 0; i < spielbrettArray.length; i++ )
{
for(int k = 0; k < spielbrettArray[i].length; k++ ){
if(spielbrettArray[i][k] == 'X') {
spielfigurExistiert.add(i + "," + k);
}
}
if(spielfigurExistiert.size() == 27) {
break;
}
}
return spielfigurExistiert;
}
return null;
}
public int[] wandelUmgekehrtUm(int umwandeln1, int umwandeln2, int umwandeln3, int umwandeln4) {
int[] umgewandelt = new int[4];
umgewandelt[0] = (umwandeln2 - 1);
umgewandelt[1] = (8 - umwandeln1);
umgewandelt[2] = (umwandeln4 - 1);
umgewandelt[3] = (8 - umwandeln3);
return umgewandelt;
}
public int[] wandelPassendUm(int umwandeln1, int umwandeln2) {
int[] umgewandelt = new int[2];
umgewandelt[0] = (8 - umwandeln2);
umgewandelt[1] = (umwandeln1 + 1);
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;
// }
}

View File

@ -37,6 +37,7 @@ public class Spielsystem {
// Scheiße
}
}
public void spielerBestimmen2Spieler(int spielerwahl) {
if (spielerwahl == 1) {
spieler = new Fuchs();
@ -114,49 +115,11 @@ public class Spielsystem {
}
public boolean gewinnBedingungHennen() {
char[][] spielbrettArray = spiel.getSpielbrettArray();
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[2][4] == 'X' && spielbrettArray[2][5] == 'X' && spielbrettArray[2][6] == 'X') {
return true;
}
int spielfigurExistiert = 0;
for (int i = 0; i < spielbrettArray.length; i++) {
for (int k = 0; k < spielbrettArray[i].length; k++) {
if (spielbrettArray[i][k] == 'O') {
spielfigurExistiert++;
}
}
if (spielfigurExistiert >= 1) {
break;
}
}
if (spielfigurExistiert == 0) {
return true;
}
return false;
return spiel.gewinnBedingungHennen();
}
public boolean gewinnBedingungFuchs() {
char[][] spielbrettArray = spiel.getSpielbrettArray();
int spielfigurExistiert = 0;
for (int i = 0; i < spielbrettArray.length; i++) {
for (int k = 0; k < spielbrettArray[i].length; k++) {
if (spielbrettArray[i][k] == 'X') {
spielfigurExistiert++;
}
}
}
if (spielfigurExistiert <= 8) {
return true;
}
return false;
return spiel.gewinnBedingungFuchs();
}
public boolean isWon() {
@ -216,18 +179,8 @@ public class Spielsystem {
return false;
}
// Noch falsche Ausgabe vom Zug (Array statt wie bei Eingabe vom Spieler)
// <---------------------------------------------------------------------
public String yourMove() {
String zug = ki.zugBestimmen(spiel, computer);
int neueStartY = Character.getNumericValue(zug.charAt(0));
int neueStartX = Character.getNumericValue(zug.charAt(2));
int neueZielY = Character.getNumericValue(zug.charAt(4));
int neueZielX = Character.getNumericValue(zug.charAt(6));
computer.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
String zug = spiel.yourMove(spiel, ki, computer);
return zug;
}