diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 626ae92..2994857 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -26,6 +26,7 @@ public class Spiel { private boolean zwei_ziehen; private int kartenZiehen; private Dashboard_GUI dashboard; + private boolean spielGewonnen; public Spiel(Dashboard_GUI dashboard_gui) { audio = new Audio(); @@ -33,6 +34,7 @@ public class Spiel { computerGegner = new Computer_gegner(kartensatz); spielzug = new Spielzug(kartensatz); dashboard = dashboard_gui; + spielGewonnen = false; } public boolean getAussetzen() { @@ -112,6 +114,7 @@ public class Spiel { * @param dashboard */ private void alternieren(Dashboard_GUI dashboard) { + if(spielGewonnen) return; if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; dashboard.aktualisiereGUI(); //Komplette GUI wird aktualisiert @@ -134,10 +137,10 @@ public class Spiel { } else { amZug = Spieler.SPIELER; + dashboard.aktualisiereGUI(); System.out.println("\nSPIEL Spieler am Zug"); if(aussetzen) { System.out.println("\nSPIEL Aussetzen möglich"); - aussetzen = false; dashboard.showaussetzen(); dashboard.aktualisiereGUI(); } @@ -145,7 +148,17 @@ public class Spiel { } + private void gewinn(Spieler spieler) { + System.out.println("HERZLICHEN GLÜCKWUNSCH " + amZug + ". DU HAST GEWONNEN"); + spielGewonnen = true; + } + + /** + * Bietet die Möglichkeit auszusetzen + */ public void aussetzen() { + if(spielGewonnen) return; + aussetzen = false; alternieren(dashboard); } @@ -154,28 +167,29 @@ public class Spiel { * @param kartenindex */ public void karteLegen(int kartenindex) { - System.out.println("SPIEL Versuche Karte " + kartenindex + " zu legen"); - if(spielzug.zugMoeglich(amZug, zwei_ziehen, aussetzen, kartensatz)) { //mögliche Karte auf der Hand - System.out.println("\nSPIEL Legen Möglich"); - if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen, kartensatz)) { //gewählte Karte kann gelegt werden - System.out.println("SPIEL pruefeZug positiv"); - System.out.println("SPIEL Lege Karte " + kartenindex); - kartensatz.ablegen(kartenindex); - if(kartensatz.getHand(amZug).size() == 1) { - audio.spieleJau(); - } - if(kartensatz.getHand(amZug).isEmpty()) { - audio.spieleJauJau(); - //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? - // Spieler Gewonnen aufrufen, Punkte aktualisieren - // Highscore Page oder Startseite aufrufen - } - System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); - System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); - effekteSetzen(); - alternieren(dashboard); + if(spielGewonnen) return; + System.out.println("SPIEL Versuche Karte " + kartenindex + " zu legen"); + if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen, kartensatz)) { //gewählte Karte kann gelegt werden + System.out.println("SPIEL pruefeZug positiv"); + System.out.println("SPIEL Lege Karte " + kartenindex); + kartensatz.ablegen(kartenindex); + if(kartensatz.getHand(amZug).size() == 1) { + audio.spieleJau(); } - } + if(kartensatz.getHand(amZug).isEmpty()) { + audio.spieleJauJau(); + dashboard.aktualisiereGUI(); + gewinn(amZug); + return; + //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? + // Spieler Gewonnen aufrufen, Punkte aktualisieren + // Highscore Page oder Startseite aufrufen + } + System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); + System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); + effekteSetzen(); + alternieren(dashboard); + } } @@ -183,6 +197,7 @@ public class Spiel { * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt */ public void karteZiehen(){ + if(spielGewonnen) return; if(!aussetzen) { if(zwei_ziehen) { //mehrere ziehen System.out.println("\nSPIEL " + kartenZiehen + " Karten gezogen"); @@ -208,6 +223,7 @@ public class Spiel { * setzt Effekt-Variablen und Wunschfarbe für einen Wünscher */ private void effekteSetzen() { + if(spielGewonnen) return; gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); if(gelegterWert == Wert.ACHT) { aussetzen = true; @@ -221,7 +237,7 @@ public class Spiel { kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz)); } else { - dashboard.showwunsch(); + dashboard.showwunsch(); //Returnwert! } } System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen);