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.BotHardHenne;
|
||||||
import domain.BotMediumFuchs;
|
import domain.BotMediumFuchs;
|
||||||
import domain.BotMediumHenne;
|
import domain.BotMediumHenne;
|
||||||
|
import domain.Computer;
|
||||||
import domain.Fuchs;
|
import domain.Fuchs;
|
||||||
import domain.Hennen;
|
import domain.Hennen;
|
||||||
import domain.Spiel;
|
import domain.Spiel;
|
||||||
|
@ -37,16 +38,23 @@ public class Spielsystem {
|
||||||
// Scheiße
|
// Scheiße
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spielerBestimmen2Spieler(int spielerwahl) {
|
public void spielerBestimmen2Spieler(int spielerwahl) {
|
||||||
if (spielerwahl == 1) {
|
if (spielerwahl == 1) {
|
||||||
spieler = new Fuchs();
|
spieler = new Fuchs();
|
||||||
spieler2 = new Hennen();
|
spieler2 = new Hennen();
|
||||||
|
computer = new Computer();
|
||||||
} else if (spielerwahl == 2) {
|
} else if (spielerwahl == 2) {
|
||||||
spieler = new Hennen();
|
spieler = new Hennen();
|
||||||
spieler2 = new Fuchs();
|
spieler2 = new Fuchs();
|
||||||
} else {
|
computer = new Computer();
|
||||||
// Scheiße
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void start2Spieler(boolean werBeginnt) {
|
||||||
|
spiel.generiereSpielbrett();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void computerBestimmen(int spielerwahl) {
|
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() {
|
public String getSpielname() {
|
||||||
return spiel.getSpielname();
|
return spiel.getSpielname();
|
||||||
}
|
}
|
||||||
|
@ -209,13 +227,23 @@ public class Spielsystem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValidMoveHenne(String zug, boolean henne) {
|
public boolean isValidMoveHenne(String zug) {
|
||||||
if (henne == true) {
|
if (spieler instanceof Hennen) {
|
||||||
return spieler.oberIsValidMove(zug, spiel);
|
return spieler.oberIsValidMove(zug, spiel);
|
||||||
|
} else if (spieler2 instanceof Hennen) {
|
||||||
|
return spieler2.oberIsValidMove(zug, spiel);
|
||||||
}
|
}
|
||||||
return false;
|
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)
|
// Noch falsche Ausgabe vom Zug (Array statt wie bei Eingabe vom Spieler)
|
||||||
// <---------------------------------------------------------------------
|
// <---------------------------------------------------------------------
|
||||||
|
@ -232,6 +260,39 @@ public class Spielsystem {
|
||||||
return zug;
|
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) {
|
public void myMove(String zug) {
|
||||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||||
int counterObersteReihe = 0;
|
int counterObersteReihe = 0;
|
||||||
|
@ -276,7 +337,8 @@ public class Spielsystem {
|
||||||
|
|
||||||
public String moveZugBestimmen(String zug) {
|
public String moveZugBestimmen(String zug) {
|
||||||
int zugLänge = zug.length();
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -303,12 +365,6 @@ public class Spielsystem {
|
||||||
// UI.start(werBeginnt, kiLevel);
|
// UI.start(werBeginnt, kiLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start2Spieler(boolean werBeginnt) {
|
|
||||||
spiel.generiereSpielbrett();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public boolean findeHenne(String henneGewählt) {
|
public boolean findeHenne(String henneGewählt) {
|
||||||
|
|
||||||
char[][] spielbrett = spiel.getSpielbrettArray();
|
char[][] spielbrett = spiel.getSpielbrettArray();
|
||||||
|
@ -376,6 +432,31 @@ public class Spielsystem {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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();
|
System.out.println();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
spielsystem.spielerBestimmen(spieler1Spielt);
|
spielsystem.spielerBestimmen2Spieler(spieler1Spielt);
|
||||||
spieler2Spielt = 1;
|
spieler2Spielt = 1;
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("Sie haben sich für die Hennen entschieden.");
|
System.out.println("Sie haben sich für die Hennen entschieden.");
|
||||||
|
@ -198,35 +198,32 @@ public class UI {
|
||||||
// wenn Henne beginnt
|
// wenn Henne beginnt
|
||||||
if (zugHenne == true) {
|
if (zugHenne == true) {
|
||||||
|
|
||||||
if (spieler1Wahl == 1) {
|
// spielsystem.setAktivenSpieler(true);
|
||||||
boolean henne = 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);
|
if (erfolgreicherZug == false) {
|
||||||
System.out.println("Die Hennen sind am Zug:");
|
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||||
System.out.println("Spieler Sie sind dran");
|
System.out.println("Sie sind weiterhin am Zug");
|
||||||
do {
|
|
||||||
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.print("> ");
|
}
|
||||||
zug = sc.nextLine();
|
} while (erfolgreicherZug == false);
|
||||||
System.out.println();
|
|
||||||
erfolgreicherZug = spielsystem.isValidMoveHenne(zug, henne);
|
|
||||||
|
|
||||||
if (erfolgreicherZug == false) {
|
spielsystem.myMove2Spieler(zug,"Henne");
|
||||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
zugHenne = false;
|
||||||
System.out.println("Sie sind weiterhin am Zug");
|
zugFuchs = true;
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
} while (erfolgreicherZug == false);
|
|
||||||
|
|
||||||
spielsystem.myMove(zug);
|
|
||||||
zugHenne = false;
|
|
||||||
zugFuchs = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// wenn Fuchs beginnt
|
// wenn Fuchs beginnt
|
||||||
} else if (zugFuchs == true) {
|
} else if (zugFuchs == true) {
|
||||||
spielsystem.setAktivenSpieler(true);
|
// spielsystem.setAktivenSpieler(true);
|
||||||
System.out.println("Die Füchse sind am Zug:");
|
System.out.println("Die Füchse sind am Zug:");
|
||||||
|
|
||||||
if (spielsystem.fuchsUmzingelt() == true) {
|
if (spielsystem.fuchsUmzingelt() == true) {
|
||||||
|
@ -249,7 +246,7 @@ public class UI {
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
zug = sc.nextLine();
|
zug = sc.nextLine();
|
||||||
System.out.println();
|
System.out.println();
|
||||||
erfolgreicherZug = spielsystem.isValidMove(zug);
|
erfolgreicherZug = spielsystem.isValidMoveFüchse(zug);
|
||||||
|
|
||||||
if (erfolgreicherZug == false) {
|
if (erfolgreicherZug == false) {
|
||||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||||
|
@ -258,7 +255,7 @@ public class UI {
|
||||||
}
|
}
|
||||||
} while (erfolgreicherZug == false);
|
} while (erfolgreicherZug == false);
|
||||||
|
|
||||||
spielsystem.myMove(zug);
|
spielsystem.myMove2Spieler(zug, "Fuchs");
|
||||||
|
|
||||||
zugHenne = true;
|
zugHenne = true;
|
||||||
zugFuchs = false;
|
zugFuchs = false;
|
||||||
|
|
Loading…
Reference in New Issue