PvP funktional gemacht, Computer-Klasse als dummy hinzu, weil sonst
null-Pointer Exceptionmain
parent
c5f19d63d5
commit
814ff920b2
|
@ -0,0 +1,17 @@
|
|||
package domain;
|
||||
|
||||
public class Computer extends Spielfigur {
|
||||
|
||||
@Override
|
||||
public boolean oberIsValidMove(String zug, Spiel spiel) {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveSpielfigur(int neueStartY, int neueStartX, int neueZielY, int neueZielX, Spiel spiel) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -7,6 +7,7 @@ import domain.BotHardFuchs;
|
|||
import domain.BotHardHenne;
|
||||
import domain.BotMediumFuchs;
|
||||
import domain.BotMediumHenne;
|
||||
import domain.Computer;
|
||||
import domain.Fuchs;
|
||||
import domain.Hennen;
|
||||
import domain.Spiel;
|
||||
|
@ -37,16 +38,23 @@ public class Spielsystem {
|
|||
// Scheiße
|
||||
}
|
||||
}
|
||||
|
||||
public void spielerBestimmen2Spieler(int spielerwahl) {
|
||||
if (spielerwahl == 1) {
|
||||
spieler = new Fuchs();
|
||||
spieler2 = new Hennen();
|
||||
computer = new Computer();
|
||||
} else if (spielerwahl == 2) {
|
||||
spieler = new Hennen();
|
||||
spieler2 = new Fuchs();
|
||||
} else {
|
||||
// Scheiße
|
||||
computer = new Computer();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void start2Spieler(boolean werBeginnt) {
|
||||
spiel.generiereSpielbrett();
|
||||
|
||||
}
|
||||
|
||||
public void computerBestimmen(int spielerwahl) {
|
||||
|
@ -69,6 +77,16 @@ public class Spielsystem {
|
|||
}
|
||||
}
|
||||
|
||||
public void setAktivenSpieler2Spieler(boolean überprüfung) {
|
||||
if (überprüfung == true) {
|
||||
// aktiverSpieler ist der Spieler
|
||||
aktiverSpieler = true;
|
||||
} else {
|
||||
// aktiverSpieler ist der Computer
|
||||
aktiverSpieler = false;
|
||||
}
|
||||
}
|
||||
|
||||
public String getSpielname() {
|
||||
return spiel.getSpielname();
|
||||
}
|
||||
|
@ -104,11 +122,11 @@ public class Spielsystem {
|
|||
public void printBoard() {
|
||||
spiel.printBoard();
|
||||
}
|
||||
|
||||
|
||||
public boolean fuchsUmzingelt() {
|
||||
return Fuchs.fuchsUmzingelt(spiel);
|
||||
}
|
||||
|
||||
|
||||
public void killFuchs() {
|
||||
Fuchs.killFuchs(spiel);
|
||||
}
|
||||
|
@ -208,14 +226,24 @@ public class Spielsystem {
|
|||
return computer.oberIsValidMove(zug, spiel);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isValidMoveHenne(String zug, boolean henne) {
|
||||
if (henne == true) {
|
||||
return spieler.oberIsValidMove(zug, spiel);
|
||||
|
||||
public boolean isValidMoveHenne(String zug) {
|
||||
if (spieler instanceof Hennen) {
|
||||
return spieler.oberIsValidMove(zug, spiel);
|
||||
} else if (spieler2 instanceof Hennen) {
|
||||
return spieler2.oberIsValidMove(zug, spiel);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isValidMoveFüchse(String zug) {
|
||||
if (spieler instanceof Fuchs) {
|
||||
return spieler.oberIsValidMove(zug, spiel);
|
||||
} else if (spieler2 instanceof Fuchs) {
|
||||
return spieler2.oberIsValidMove(zug, spiel);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Noch falsche Ausgabe vom Zug (Array statt wie bei Eingabe vom Spieler)
|
||||
// <---------------------------------------------------------------------
|
||||
|
@ -232,6 +260,39 @@ public class Spielsystem {
|
|||
return zug;
|
||||
}
|
||||
|
||||
public void myMove2Spieler(String zug, String figur) {
|
||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||
|
||||
String moveZug = moveZugBestimmen(zug);
|
||||
System.out.println(moveZug);
|
||||
|
||||
int[] neueKoordinaten = spiel.berechneRichtigeKoordinaten(moveZug);
|
||||
int neueStartY = neueKoordinaten[0];
|
||||
int neueStartX = neueKoordinaten[1];
|
||||
int neueZielY = neueKoordinaten[2];
|
||||
int neueZielX = neueKoordinaten[3];
|
||||
|
||||
if (figur.equals("Fuchs")) {
|
||||
if (spieler instanceof Fuchs) {
|
||||
spieler.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||
} else if (spieler2 instanceof Fuchs) {
|
||||
spieler2.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||
}
|
||||
} else if (figur.equals("Henne")) {
|
||||
if (spieler instanceof Hennen) {
|
||||
spieler.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||
checkRespawn();
|
||||
|
||||
}
|
||||
if (spieler2 instanceof Hennen) {
|
||||
spieler2.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||
checkRespawn();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void myMove(String zug) {
|
||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||
int counterObersteReihe = 0;
|
||||
|
@ -240,7 +301,7 @@ public class Spielsystem {
|
|||
|
||||
String moveZug = moveZugBestimmen(zug);
|
||||
System.out.println(moveZug);
|
||||
|
||||
|
||||
int[] neueKoordinaten = spiel.berechneRichtigeKoordinaten(moveZug);
|
||||
int neueStartY = neueKoordinaten[0];
|
||||
int neueStartX = neueKoordinaten[1];
|
||||
|
@ -273,10 +334,11 @@ public class Spielsystem {
|
|||
computer.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String moveZugBestimmen(String zug) {
|
||||
int zugLänge = zug.length();
|
||||
return "" + zug.charAt(0) + zug.charAt(1) + zug.charAt(2) + " " + zug.charAt(zugLänge - 3) + zug.charAt(zugLänge - 2) + zug.charAt(zugLänge - 1);
|
||||
return "" + zug.charAt(0) + zug.charAt(1) + zug.charAt(2) + " " + zug.charAt(zugLänge - 3)
|
||||
+ zug.charAt(zugLänge - 2) + zug.charAt(zugLänge - 1);
|
||||
|
||||
}
|
||||
|
||||
|
@ -297,17 +359,11 @@ public class Spielsystem {
|
|||
} else {
|
||||
// Fehleingabe
|
||||
}
|
||||
|
||||
|
||||
spiel.generiereSpielbrett();
|
||||
|
||||
// UI.start(werBeginnt, kiLevel);
|
||||
}
|
||||
|
||||
public void start2Spieler(boolean werBeginnt) {
|
||||
spiel.generiereSpielbrett();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public boolean findeHenne(String henneGewählt) {
|
||||
|
||||
|
@ -371,11 +427,36 @@ public class Spielsystem {
|
|||
|
||||
spiel.ändereWertImArray(neueZielY, neueZielX, 'X');
|
||||
spiel.ändereWertImArray(neueStartY, neueStartX, '\u25A1');
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public void checkRespawn() {
|
||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||
int counterObersteReihe = 0;
|
||||
int counterMittlereReihe = 0;
|
||||
int counterUntereReihe = 0;
|
||||
|
||||
// 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++;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@ public class UI {
|
|||
System.out.println();
|
||||
break;
|
||||
case 2:
|
||||
spielsystem.spielerBestimmen(spieler1Spielt);
|
||||
spielsystem.spielerBestimmen2Spieler(spieler1Spielt);
|
||||
spieler2Spielt = 1;
|
||||
System.out.println();
|
||||
System.out.println("Sie haben sich für die Hennen entschieden.");
|
||||
|
@ -198,35 +198,32 @@ public class UI {
|
|||
// wenn Henne beginnt
|
||||
if (zugHenne == true) {
|
||||
|
||||
if (spieler1Wahl == 1) {
|
||||
boolean henne = true;
|
||||
// spielsystem.setAktivenSpieler(true);
|
||||
System.out.println("Die Hennen sind am Zug:");
|
||||
System.out.println("Spieler Sie sind dran");
|
||||
do {
|
||||
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
||||
System.out.println();
|
||||
System.out.print("> ");
|
||||
zug = sc.nextLine();
|
||||
System.out.println();
|
||||
erfolgreicherZug = spielsystem.isValidMoveHenne(zug);
|
||||
|
||||
spielsystem.setAktivenSpieler(true);
|
||||
System.out.println("Die Hennen sind am Zug:");
|
||||
System.out.println("Spieler Sie sind dran");
|
||||
do {
|
||||
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
||||
if (erfolgreicherZug == false) {
|
||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||
System.out.println("Sie sind weiterhin am Zug");
|
||||
System.out.println();
|
||||
System.out.print("> ");
|
||||
zug = sc.nextLine();
|
||||
System.out.println();
|
||||
erfolgreicherZug = spielsystem.isValidMoveHenne(zug, henne);
|
||||
}
|
||||
} while (erfolgreicherZug == false);
|
||||
|
||||
if (erfolgreicherZug == false) {
|
||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||
System.out.println("Sie sind weiterhin am Zug");
|
||||
System.out.println();
|
||||
}
|
||||
} while (erfolgreicherZug == false);
|
||||
spielsystem.myMove2Spieler(zug,"Henne");
|
||||
zugHenne = false;
|
||||
zugFuchs = true;
|
||||
|
||||
spielsystem.myMove(zug);
|
||||
zugHenne = false;
|
||||
zugFuchs = true;
|
||||
}
|
||||
|
||||
// wenn Fuchs beginnt
|
||||
} else if (zugFuchs == true) {
|
||||
spielsystem.setAktivenSpieler(true);
|
||||
// spielsystem.setAktivenSpieler(true);
|
||||
System.out.println("Die Füchse sind am Zug:");
|
||||
|
||||
if (spielsystem.fuchsUmzingelt() == true) {
|
||||
|
@ -249,7 +246,7 @@ public class UI {
|
|||
System.out.print("> ");
|
||||
zug = sc.nextLine();
|
||||
System.out.println();
|
||||
erfolgreicherZug = spielsystem.isValidMove(zug);
|
||||
erfolgreicherZug = spielsystem.isValidMoveFüchse(zug);
|
||||
|
||||
if (erfolgreicherZug == false) {
|
||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||
|
@ -258,7 +255,7 @@ public class UI {
|
|||
}
|
||||
} while (erfolgreicherZug == false);
|
||||
|
||||
spielsystem.myMove(zug);
|
||||
spielsystem.myMove2Spieler(zug, "Fuchs");
|
||||
|
||||
zugHenne = true;
|
||||
zugFuchs = false;
|
||||
|
|
Loading…
Reference in New Issue