Kommentierung verbessert, Debug durch debug-boolean ausgeblendet

This commit is contained in:
Fabian Keller
2021-01-11 15:33:10 +01:00
parent 3f5fe3d3f9
commit 8940bcdbfc

View File

@@ -29,6 +29,7 @@ public class Spiel {
private int kartenZiehen; private int kartenZiehen;
private Dashboard_GUI dashboard; private Dashboard_GUI dashboard;
private boolean spielGewonnen; private boolean spielGewonnen;
private boolean debug = false;
public Spiel(Dashboard_GUI dashboard_gui) { public Spiel(Dashboard_GUI dashboard_gui) {
audio = new Audio(); audio = new Audio();
@@ -65,41 +66,41 @@ public class Spiel {
* @param dashboard * @param dashboard
*/ */
public void spiel(Dashboard_GUI dashboard) { public void spiel(Dashboard_GUI dashboard) {
System.out.println("\nSPIEL Spiel gestartet."); if(debug) System.out.println("\nSPIEL Spiel gestartet.");
Random zufallszahl = new Random(); Random zufallszahl = new Random();
int zahl = zufallszahl.nextInt(2); int zahl = zufallszahl.nextInt(2);
if(zahl == 1) { //Starter durch zufall bestimmen if(zahl == 1) { //Starter durch zufall bestimmen
amZug = Spieler.SPIELER; amZug = Spieler.SPIELER;
System.out.println("SPIEL Spieler startet"); if(debug) System.out.println("SPIEL Spieler startet");
} }
else { else {
amZug = Spieler.COMPUTER; amZug = Spieler.COMPUTER;
System.out.println("SPIEL Computer startet"); if(debug) System.out.println("SPIEL Computer startet");
} }
for(int i = 0; i < 7; i++) { //Jeder bekommt 7 Karten for(int i = 0; i < 7; i++) { //Jeder bekommt 7 Karten
kartensatz.ziehen(Spieler.COMPUTER); kartensatz.ziehen(Spieler.COMPUTER);
kartensatz.ziehen(Spieler.SPIELER); kartensatz.ziehen(Spieler.SPIELER);
} }
System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); if(debug) System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); if(debug) System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
effekteSetzen(); effekteSetzen(); //effekte f<>r den Start setzen
if(amZug == Spieler.COMPUTER) { if(amZug == Spieler.COMPUTER) { //falls der PC startet, findet hier der erste Zug statt
int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen, kartensatz); int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen, kartensatz);
System.out.println("\nSPIEL Computerauswahl: " + computerZug); if(debug) System.out.println("\nSPIEL Computerauswahl: " + computerZug);
switch(computerZug) { switch(computerZug) {
case -2: case -2: //aussetzen
aussetzen = false; aussetzen = false;
alternieren(dashboard); alternieren(dashboard);
break; break;
case -1: case -1: //Karte ziehen
karteZiehen(); karteZiehen();
break; break;
default: default: //Karte legen
karteLegen(computerZug); karteLegen(computerZug);
break; break;
} }
} }
else if(amZug == Spieler.SPIELER) { else if(amZug == Spieler.SPIELER) {//falls der Spieler startet wird noch der Aussetzen-Button eingeblendet
if(aussetzen) dashboard.showaussetzen(true); if(aussetzen) dashboard.showaussetzen(true);
} }
return; return;
@@ -107,17 +108,17 @@ public class Spiel {
/** /**
* Organisiert den Spielablauf nach jedem g<>ltigen Zug * Organisiert den Spielablauf nach jedem g<>ltigen Zug, wechselt zwischen Spieler und Computer
* @param dashboard * @param dashboard
*/ */
private void alternieren(Dashboard_GUI dashboard) { private void alternieren(Dashboard_GUI dashboard) {
if(spielGewonnen) return; if(spielGewonnen) return;
if(amZug == Spieler.SPIELER) { if(amZug == Spieler.SPIELER) { //CPU Zug findet statt
amZug = Spieler.COMPUTER; amZug = Spieler.COMPUTER;
dashboard.aktualisiereGUI(); dashboard.aktualisiereGUI();
System.out.println("\nSPIEL Computer am Zug"); if(debug) System.out.println("\nSPIEL Computer am Zug");
int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen, kartensatz); int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen, kartensatz);
System.out.println("SPIEL Computerauswahl: " + computerZug); if(debug) System.out.println("SPIEL Computerauswahl: " + computerZug);
switch(computerZug) { switch(computerZug) {
case -2: case -2:
aussetzen = false; aussetzen = false;
@@ -132,12 +133,12 @@ public class Spiel {
} }
} }
else { else { //Spieler Zug findet statt
amZug = Spieler.SPIELER; amZug = Spieler.SPIELER;
dashboard.aktualisiereGUI(); dashboard.aktualisiereGUI();
System.out.println("\nSPIEL Spieler am Zug"); if(debug) System.out.println("\nSPIEL Spieler am Zug");
if(aussetzen) { if(aussetzen) { //falls aussetzen aktiv, wird die M<>glichkeit <20>ber den Button aktiviert
System.out.println("\nSPIEL Aussetzen m<>glich"); if(debug) System.out.println("\nSPIEL Aussetzen m<>glich");
dashboard.showaussetzen(true); dashboard.showaussetzen(true);
dashboard.aktualisiereGUI(); dashboard.aktualisiereGUI();
} }
@@ -150,14 +151,14 @@ public class Spiel {
* @param spieler Spieler, welcher gewonnen hat * @param spieler Spieler, welcher gewonnen hat
*/ */
private void gewinn(Spieler spieler) { private void gewinn(Spieler spieler) {
System.out.println("HERZLICHEN GL<47>CKWUNSCH " + spieler + ". DU HAST GEWONNEN"); if(debug) System.out.println("HERZLICHEN GL<47>CKWUNSCH " + spieler + ". DU HAST GEWONNEN");
dashboard.gewonnen(spieler); dashboard.gewonnen(spieler);
spielGewonnen = true; spielGewonnen = true;
} }
/** /**
* Bietet die M<>glichkeit auszusetzen * Bietet f<EFBFBD>r den Spieler die M<>glichkeit auszusetzen
*/ */
public void aussetzen() { public void aussetzen() {
if(spielGewonnen) return; if(spielGewonnen) return;
@@ -166,35 +167,35 @@ public class Spiel {
} }
/** /**
* falls eine Karte gelegt werden kann, wird diese gelegt * falls eine Karte gelegt werden kann, wird diese f<EFBFBD>r den Teilnehmer gelegt
* @param kartenindex * @param kartenindex
*/ */
public void karteLegen(int kartenindex) { public void karteLegen(int kartenindex) {
if(spielGewonnen) return; if(spielGewonnen) return;
System.out.println("SPIEL Versuche Karte " + kartenindex + " zu legen"); if(debug) System.out.println("SPIEL Versuche Karte " + kartenindex + " zu legen");
if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen, kartensatz)) { //gew<65>hlte Karte kann gelegt werden if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen, kartensatz)) { //gew<65>hlte Karte kann gelegt werden - Zug kann stattfinden | sonst nichts
System.out.println("SPIEL pruefeZug positiv"); if(debug) System.out.println("SPIEL pruefeZug positiv");
System.out.println("SPIEL Lege Karte " + kartenindex); if(debug) System.out.println("SPIEL Lege Karte " + kartenindex);
kartensatz.ablegen(kartenindex); kartensatz.ablegen(kartenindex); //karte ablegen
if(kartensatz.getHand(amZug).size() == 1) { //Teilnehmer hat nur noch eine Karte if(kartensatz.getHand(amZug).size() == 1) { //Teilnehmer hat nur noch eine Karte
audio.spieleJau(); audio.spieleJau();
} }
if(kartensatz.getHand(amZug).isEmpty()) { //Teilnehmer hat gewonnen if(kartensatz.getHand(amZug).isEmpty()) { //Teilnehmer hat gewonnen
audio.spieleJauJau(); audio.spieleJauJau();
gewinn(amZug); gewinn(amZug); //amZug hat gewonnen
return; return;
} }
System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); if(debug) System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); if(debug) System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
effekteSetzen(); effekteSetzen(); //effekte neu setzen
if(kartensatz.getKarte(kartenindex).getWERT() == Wert.ACHT) { //Sonderfall: wiederholtes aussetzen if(kartensatz.getKarte(kartenindex).getWERT() == Wert.ACHT) { //Sonderfall: wiederholtes aussetzen Spieler
if(amZug == Spieler.SPIELER) dashboard.showaussetzen(false); if(amZug == Spieler.SPIELER) dashboard.showaussetzen(false);
} }
if(kartensatz.getKarte(kartenindex).getWERT() == Wert.BUBE) { //Sonderfall: W<>nscher wurde gelegt if(kartensatz.getKarte(kartenindex).getWERT() == Wert.BUBE) { //Sonderfall: W<>nscher wurde gelegt Spieler
if(amZug == Spieler.COMPUTER) alternieren(dashboard); if(amZug == Spieler.COMPUTER) alternieren(dashboard);
} }
else { else {
alternieren(dashboard); alternieren(dashboard); //weiter ohne Sonderfall
} }
} }
} }
@@ -207,31 +208,31 @@ public class Spiel {
if(spielGewonnen) return; if(spielGewonnen) return;
if(!aussetzen) { if(!aussetzen) {
if(zwei_ziehen) { //mehrere ziehen if(zwei_ziehen) { //mehrere ziehen
System.out.println("\nSPIEL " + kartenZiehen + " Karten gezogen"); if(debug) System.out.println("\nSPIEL " + kartenZiehen + " Karten gezogen");
for(int i = 0; i < kartenZiehen; i++) { for(int i = 0; i < kartenZiehen; i++) {
kartensatz.ziehen(amZug); kartensatz.ziehen(amZug);
} }
kartenZiehen = 0; kartenZiehen = 0;
zwei_ziehen = false; zwei_ziehen = false;
} }
else { //Normales ziehen else { //Normales (1) ziehen
kartensatz.ziehen(amZug); kartensatz.ziehen(amZug);
System.out.println("\nSPIEL 1 Karte gezogen"); if(debug) System.out.println("\nSPIEL 1 Karte gezogen");
} }
alternieren(dashboard); alternieren(dashboard);
} }
else { //ziehen nicht m<>glich else { //ziehen nicht m<>glich - nichts passiert
return; return;
} }
} }
/** /**
* Setzt die W<EFBFBD>nscher Farbe * Setzt die Wunschfarbe f<>r den Spieler
* @param farbe * @param farbe
*/ */
public void wuenscher(Farbe farbe) { public void wuenscher(Farbe farbe) {
System.out.println("\nSPIEL W<>nsche Farbe"); if(debug) System.out.println("\nSPIEL W<>nsche Farbe");
kartensatz.SetWunschfarbe(farbe); kartensatz.SetWunschfarbe(farbe);
alternieren(dashboard); alternieren(dashboard);
dashboard.aktualisiereGUI(); dashboard.aktualisiereGUI();
@@ -239,26 +240,26 @@ public class Spiel {
/** /**
* setzt Effekt-Variablen und Wunschfarbe f<>r einen W<>nscher * setzt Effekt-Variablen und Wunschfarbe f<>r einen W<>nscher vom Spieler, ruft Farbauswahl f<>r Spieler-W<>nscher auf
*/ */
private void effekteSetzen() { private void effekteSetzen() {
if(spielGewonnen) return; if(spielGewonnen) return;
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
if(gelegterWert == Wert.ACHT) { if(gelegterWert == Wert.ACHT) {//Aussetzen
aussetzen = true; aussetzen = true;
} }
if(gelegterWert == Wert.SIEBEN) { if(gelegterWert == Wert.SIEBEN) {//Ziehen
zwei_ziehen = true; zwei_ziehen = true;
kartenZiehen += 2; kartenZiehen += 2;
} }
if(gelegterWert == Wert.BUBE) { if(gelegterWert == Wert.BUBE) {//W<>nscher
if(amZug == Spieler.COMPUTER) { if(amZug == Spieler.COMPUTER) {//Wunschfarbe durch PC wird gesetzt
kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz)); kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz));
} }
else { else { //Wunschfarbe durch Spieler setzen
dashboard.showwunsch(true); dashboard.showwunsch(true);
} }
} }
System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen); if(debug) System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen);
} }
} }