HennenRespawn dazu, Abfrage ob respawn möglich in myMove Spielsystem

pull/5/head
robinschumann 2022-12-04 12:37:54 +01:00
parent 864effdfc2
commit a4ed62cf8d
2 changed files with 149 additions and 68 deletions

View File

@ -70,5 +70,62 @@ public class Hennen extends Spielfigur {
System.out.println("Hennenmethode aufgerufen"); System.out.println("Hennenmethode aufgerufen");
return true; return true;
}
public static boolean hennenRespawn(Spiel spiel, int counter) {
char[][] spielbrettArray = spiel.getSpielbrettArray();
int zähler = counter;
if (zähler >= 1) {
return false;
}
if (spielbrettArray[0][4] == 'X' && spielbrettArray[0][5] == 'X' && spielbrettArray[0][6] == 'X') {
// unten links
if (spielbrettArray[8][4] == '\u25A1') {
spiel.ändereWertImArray(8, 4, 'X');
System.out.println("an der Stelle 8,4 ist eine neue Henne gespawnt");
return true;
// unten mitte
} else if (spielbrettArray[8][5] == '\u25A1') {
spiel.ändereWertImArray(8, 5, 'X');
System.out.println("an der Stelle 8,5 ist eine neue Henne gespawnt");
return true;
// unten rechts
} else if (spielbrettArray[8][6] == '\u25A1') {
spiel.ändereWertImArray(8, 6, 'X');
System.out.println("an der Stelle 8,6 ist eine neue Henne gespawnt");
return true;
// unten mitte links
} else if (spielbrettArray[7][4] == '\u25A1') {
spiel.ändereWertImArray(7, 4, 'X');
System.out.println("an der Stelle 7,4 ist eine neue Henne gespawnt");
return true;
// unten mitte mitte
} else if (spielbrettArray[7][5] == '\u25A1') {
spiel.ändereWertImArray(7, 5, 'X');
System.out.println("an der Stelle 7,5 ist eine neue Henne gespawnt");
return true;
// unten mitte rechts
} else if (spielbrettArray[7][6] == '\u25A1') {
spiel.ändereWertImArray(7, 6, 'X');
System.out.println("an der Stelle 7,6 ist eine neue Henne gespawnt");
return true;
} else if (spielbrettArray[6][4] == '\u25A1') {
spiel.ändereWertImArray(6, 4, 'X');
System.out.println("an der Stelle 6,4 ist eine neue Henne gespawnt");
return true;
// unten mitte mitte
} else if (spielbrettArray[6][5] == '\u25A1') {
spiel.ändereWertImArray(6, 5, 'X');
System.out.println("an der Stelle 6,5 ist eine neue Henne gespawnt");
return true;
// unten mitte rechts
} else if (spielbrettArray[6][6] == '\u25A1') {
spiel.ändereWertImArray(6, 6, 'X');
System.out.println("an der Stelle 6,6 ist eine neue Henne gespawnt");
return true;
}
}
return false;
} }
} }

View File

@ -97,16 +97,15 @@ public class Spielsystem {
public boolean gewinnBedingungHennen() { public boolean gewinnBedingungHennen() {
char[][] spielbrettArray = spiel.getSpielbrettArray(); char[][] spielbrettArray = spiel.getSpielbrettArray();
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'
spielbrettArray[2][4] == 'X' && spielbrettArray[2][5] == 'X' && spielbrettArray[2][6] == 'X') { && spielbrettArray[2][4] == 'X' && spielbrettArray[2][5] == 'X' && spielbrettArray[2][6] == 'X') {
return true; return true;
} }
int spielfigurExistiert = 0; int spielfigurExistiert = 0;
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') {
spielfigurExistiert++; spielfigurExistiert++;
@ -127,8 +126,7 @@ public class Spielsystem {
char[][] spielbrettArray = spiel.getSpielbrettArray(); char[][] spielbrettArray = spiel.getSpielbrettArray();
int spielfigurExistiert = 0; int spielfigurExistiert = 0;
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] == 'X') { if (spielbrettArray[i][k] == 'X') {
spielfigurExistiert++; spielfigurExistiert++;
@ -225,7 +223,8 @@ public class Spielsystem {
return neueKoordinaten; return neueKoordinaten;
} }
// Noch falsche Ausgabe vom Zug (Array statt wie bei Eingabe vom Spieler) <--------------------------------------------------------------------- // Noch falsche Ausgabe vom Zug (Array statt wie bei Eingabe vom Spieler)
// <---------------------------------------------------------------------
public String yourMove() { public String yourMove() {
String zug = ki.zugBestimmen(spiel, computer); String zug = ki.zugBestimmen(spiel, computer);
@ -240,6 +239,11 @@ public class Spielsystem {
} }
public void myMove(String zug) { public void myMove(String zug) {
char[][] spielbrettArray = spiel.getSpielbrettArray();
int counterObersteReihe = 0;
int counterMittlereReihe = 0;
int counterUntereReihe = 0;
int[] neueKoordinaten = berechneRichtigeKoordinaten(zug); int[] neueKoordinaten = berechneRichtigeKoordinaten(zug);
int neueStartY = neueKoordinaten[0]; int neueStartY = neueKoordinaten[0];
int neueStartX = neueKoordinaten[1]; int neueStartX = neueKoordinaten[1];
@ -248,6 +252,26 @@ public class Spielsystem {
if (aktiverSpieler == true) { if (aktiverSpieler == true) {
spieler.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel); spieler.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
// Check ob eine Henne respawnen kann, nachdem die oberste Reihe gefüllt wurde
if (spielbrettArray[0][4] == 'X' && spielbrettArray[0][5] == 'X' && spielbrettArray[0][6] == 'X') {
Hennen.hennenRespawn(spiel, counterObersteReihe);
counterObersteReihe++;
}
// Check ob die oberere und die mittlere Reihe gefüllt wurden mit dem Zug
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')) {
Hennen.hennenRespawn(spiel, counterMittlereReihe);
counterMittlereReihe++;
}
// für die Vollständigkeit trotzdem dazu, obwohl der Fall nicht eintreten kann,
// da die Hennen dann gewonnen haben
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') {
Hennen.hennenRespawn(spiel, counterUntereReihe);
counterUntereReihe++;
}
} else { } else {
computer.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel); computer.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
} }