HennenRespawn dazu, Abfrage ob respawn möglich in myMove Spielsystem
parent
864effdfc2
commit
a4ed62cf8d
|
@ -5,7 +5,7 @@ public class Hennen extends Spielfigur {
|
||||||
public Hennen() {
|
public Hennen() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void moveSpielfigur(int neueStartY, int neueStartX, int neueZielY, int neueZielX, Spiel spiel) {
|
public void moveSpielfigur(int neueStartY, int neueStartX, int neueZielY, int neueZielX, Spiel spiel) {
|
||||||
spiel.ändereWertImArray(neueStartY, neueStartX, '\u25A1');
|
spiel.ändereWertImArray(neueStartY, neueStartX, '\u25A1');
|
||||||
spiel.ändereWertImArray(neueZielY, neueZielX, 'X');
|
spiel.ändereWertImArray(neueZielY, neueZielX, 'X');
|
||||||
|
@ -13,11 +13,11 @@ public class Hennen extends Spielfigur {
|
||||||
|
|
||||||
// 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(int neueStartY, int neueStartX, int neueZielY, int neueZielX, Spiel spiel) {
|
public boolean isValidMove(int neueStartY, int neueStartX, int neueZielY, int neueZielX, Spiel spiel) {
|
||||||
|
|
||||||
// Zug fehleingabe
|
// Zug fehleingabe
|
||||||
if (neueStartY == 1000 || neueStartX == 1000 || neueZielY == 1000 || neueZielX == 1000) {
|
if (neueStartY == 1000 || neueStartX == 1000 || neueZielY == 1000 || neueZielX == 1000) {
|
||||||
System.out.println("Fehleingabe");
|
System.out.println("Fehleingabe");
|
||||||
System.out.println(neueStartY + " " + neueStartX +" "+neueZielY+" "+neueZielX);
|
System.out.println(neueStartY + " " + neueStartX + " " + neueZielY + " " + neueZielX);
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Fehler Spielsymbol beim Start oder Ziel falsch
|
// Fehler Spielsymbol beim Start oder Ziel falsch
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,41 +29,41 @@ public class Spielsystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spielerBestimmen(int spielerwahl) {
|
public void spielerBestimmen(int spielerwahl) {
|
||||||
if(spielerwahl == 1) {
|
if (spielerwahl == 1) {
|
||||||
spieler = new Fuchs();
|
spieler = new Fuchs();
|
||||||
} else if(spielerwahl == 2) {
|
} else if (spielerwahl == 2) {
|
||||||
spieler = new Hennen();
|
spieler = new Hennen();
|
||||||
} else {
|
} else {
|
||||||
//Scheiße
|
// Scheiße
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void computerBestimmen(int spielerwahl) {
|
public void computerBestimmen(int spielerwahl) {
|
||||||
if(spielerwahl == 2) {
|
if (spielerwahl == 2) {
|
||||||
computer = new Fuchs();
|
computer = new Fuchs();
|
||||||
} else if(spielerwahl == 1) {
|
} else if (spielerwahl == 1) {
|
||||||
computer = new Hennen();
|
computer = new Hennen();
|
||||||
} else {
|
} else {
|
||||||
//Scheiße
|
// Scheiße
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAktivenSpieler(boolean überprüfung) {
|
public void setAktivenSpieler(boolean überprüfung) {
|
||||||
if(überprüfung == true) {
|
if (überprüfung == true) {
|
||||||
// aktiverSpieler ist der Spieler
|
// aktiverSpieler ist der Spieler
|
||||||
aktiverSpieler = true;
|
aktiverSpieler = true;
|
||||||
} else {
|
} else {
|
||||||
// aktiverSpieler ist der Computer
|
// aktiverSpieler ist der Computer
|
||||||
aktiverSpieler = false;
|
aktiverSpieler = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSpielname() {
|
public String getSpielname() {
|
||||||
return spielname;
|
return spielname;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getSpielfigurComputer() {
|
public boolean getSpielfigurComputer() {
|
||||||
if(computer instanceof Hennen) {
|
if (computer instanceof Hennen) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -71,25 +71,25 @@ public class Spielsystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getSpielfigurSpieler() {
|
public boolean getSpielfigurSpieler() {
|
||||||
if(spieler instanceof Hennen) {
|
if (spieler instanceof Hennen) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Spielfigur getHenne() {
|
public Spielfigur getHenne() {
|
||||||
return henne;
|
return henne;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Spielfigur getFuchs() {
|
public Spielfigur getFuchs() {
|
||||||
return fuchs;
|
return fuchs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bot getBot() {
|
public Bot getBot() {
|
||||||
return ki;
|
return ki;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printBoard() {
|
public void printBoard() {
|
||||||
spiel.printBoard();
|
spiel.printBoard();
|
||||||
}
|
}
|
||||||
|
@ -97,27 +97,26 @@ 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++;
|
}
|
||||||
|
}
|
||||||
|
if (spielfigurExistiert >= 1) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(spielfigurExistiert >= 1) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(spielfigurExistiert == 0) {
|
if (spielfigurExistiert == 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -127,23 +126,22 @@ 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++;
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(spielfigurExistiert <= 8) {
|
if (spielfigurExistiert <= 8) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isWon() {
|
public boolean isWon() {
|
||||||
if(gewinnBedingungHennen() == true) {
|
if (gewinnBedingungHennen() == true) {
|
||||||
System.out.println("Hennen haben gewonnen");
|
System.out.println("Hennen haben gewonnen");
|
||||||
whoWon();
|
whoWon();
|
||||||
return true;
|
return true;
|
||||||
|
@ -154,50 +152,50 @@ public class Spielsystem {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRunning() {
|
public boolean isRunning() {
|
||||||
if(isWon() == false) {
|
if (isWon() == false) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean whoWon() {
|
public boolean whoWon() {
|
||||||
if(gewinnBedingungFuchs() == true) {
|
if (gewinnBedingungFuchs() == true) {
|
||||||
if(spieler instanceof Fuchs) {
|
if (spieler instanceof Fuchs) {
|
||||||
System.out.println("Spieler 1 gewinnt");
|
System.out.println("Spieler 1 gewinnt");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Spieler 2 gewinnt");
|
System.out.println("Spieler 2 gewinnt");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(spieler instanceof Hennen) {
|
if (spieler instanceof Hennen) {
|
||||||
System.out.println("Spieler 1 gewinnt");
|
System.out.println("Spieler 1 gewinnt");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Spieler 2 gewinnt");
|
System.out.println("Spieler 2 gewinnt");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValidMove(String zug) {
|
public boolean isValidMove(String zug) {
|
||||||
int[] neueKoordinaten = berechneRichtigeKoordinaten(zug);
|
int[] neueKoordinaten = berechneRichtigeKoordinaten(zug);
|
||||||
int neueStartY = neueKoordinaten[0];
|
int neueStartY = neueKoordinaten[0];
|
||||||
int neueStartX = neueKoordinaten[1];
|
int neueStartX = neueKoordinaten[1];
|
||||||
int neueZielY = neueKoordinaten[2];
|
int neueZielY = neueKoordinaten[2];
|
||||||
int neueZielX = neueKoordinaten[3];
|
int neueZielX = neueKoordinaten[3];
|
||||||
|
|
||||||
if(aktiverSpieler == true) {
|
if (aktiverSpieler == true) {
|
||||||
return spieler.isValidMove(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
return spieler.isValidMove(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||||
} else {
|
} else {
|
||||||
return computer.isValidMove(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
return computer.isValidMove(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] berechneRichtigeKoordinaten(String zug) {
|
public int[] berechneRichtigeKoordinaten(String zug) {
|
||||||
// Form vom Zug: "5,5 4,5"
|
// Form vom Zug: "5,5 4,5"
|
||||||
|
|
||||||
|
@ -220,12 +218,13 @@ public class Spielsystem {
|
||||||
|
|
||||||
// Werte angepasst auf unser Board, die Form des Zuges hat sich geändert von X,Y
|
// Werte angepasst auf unser Board, die Form des Zuges hat sich geändert von X,Y
|
||||||
// auf Y,X
|
// auf Y,X
|
||||||
int[] neueKoordinaten = {neueStartKoords[0], neueStartKoords[1], neueZielKoords[0], neueZielKoords[1]};
|
int[] neueKoordinaten = { neueStartKoords[0], neueStartKoords[1], neueZielKoords[0], neueZielKoords[1] };
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
|
@ -238,40 +237,65 @@ public class Spielsystem {
|
||||||
|
|
||||||
return zug;
|
return zug;
|
||||||
}
|
}
|
||||||
|
|
||||||
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];
|
||||||
int neueZielY = neueKoordinaten[2];
|
int neueZielY = neueKoordinaten[2];
|
||||||
int neueZielX = neueKoordinaten[3];
|
int neueZielX = neueKoordinaten[3];
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start(boolean werBeginnt, int kiLevel) {
|
public void start(boolean werBeginnt, int kiLevel) {
|
||||||
|
|
||||||
if (kiLevel == 0 && computer instanceof Hennen) {
|
if (kiLevel == 0 && computer instanceof Hennen) {
|
||||||
ki = new BotEasyHenne();
|
ki = new BotEasyHenne();
|
||||||
} else if ( kiLevel == 1 && computer instanceof Hennen) {
|
} else if (kiLevel == 1 && computer instanceof Hennen) {
|
||||||
ki = new BotMediumHenne();
|
ki = new BotMediumHenne();
|
||||||
} else if (kiLevel == 2 && computer instanceof Hennen) {
|
} else if (kiLevel == 2 && computer instanceof Hennen) {
|
||||||
ki = new BotHardHenne();
|
ki = new BotHardHenne();
|
||||||
} else if (kiLevel == 0 && computer instanceof Fuchs) {
|
} else if (kiLevel == 0 && computer instanceof Fuchs) {
|
||||||
ki = new BotEasyFuchs();
|
ki = new BotEasyFuchs();
|
||||||
} else if ( kiLevel == 1 && computer instanceof Fuchs) {
|
} else if (kiLevel == 1 && computer instanceof Fuchs) {
|
||||||
ki = new BotMediumFuchs();
|
ki = new BotMediumFuchs();
|
||||||
} else if (kiLevel == 2 && computer instanceof Fuchs) {
|
} else if (kiLevel == 2 && computer instanceof Fuchs) {
|
||||||
ki = new BotHardFuchs();
|
ki = new BotHardFuchs();
|
||||||
}else {
|
} else {
|
||||||
//Fehleingabe
|
// Fehleingabe
|
||||||
}
|
}
|
||||||
|
|
||||||
// UI.start(werBeginnt, kiLevel);
|
// UI.start(werBeginnt, kiLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue