From 6f2dc32d40c9618e99486324720d87c78e3d877a Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Fri, 8 Jan 2021 12:26:41 +0100 Subject: [PATCH 01/10] shwowwunsch(true) gesetzt --- src/de/jaujau/spiellogik/Spiel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index dc31e0b..8be9a94 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -238,7 +238,7 @@ public class Spiel { kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz)); } else { - dashboard.showwunsch(); //Returnwert! + dashboard.showwunsch(true); //Returnwert! } } System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen); From dde9c8b34d287298341bcecb252034b60d4d1fab Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Fri, 8 Jan 2021 12:27:22 +0100 Subject: [PATCH 02/10] showwunsch(true) gesetzt --- src/de/jaujau/spiellogik/Spiel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 8be9a94..5636f11 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -221,7 +221,7 @@ public class Spiel { /** - * setzt Effekt-Variablen und Wunschfarbe für einen Wünscher + * setzt Effekt-Variablen und Wunschfarbe für einen Wünscher */ private void effekteSetzen() { if(spielGewonnen) return; From 5b1b93f98e390249b3004e3510c8883cb837bb68 Mon Sep 17 00:00:00 2001 From: ekresse Date: Fri, 8 Jan 2021 12:34:16 +0100 Subject: [PATCH 03/10] Dashboard GameUpdate --- src/de/jaujau/gui/Dashboard_GUI.java | 59 ++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 54b5c66..6860bb4 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -64,6 +64,7 @@ public class Dashboard_GUI extends JPanel{ private JButton btnpik = new JButton("Pik"); private JButton btnkaro = new JButton("Karo"); private JButton btnkreuz = new JButton("Kreuz"); + private final JLabel label_final = new JLabel("Spiel beendet"); public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) { setMinimumSize(new Dimension(1000, 600)); @@ -167,6 +168,12 @@ public class Dashboard_GUI extends JPanel{ mitte.add(mitte_center); + label_final.setVisible(false); + label_final.setFont(new Font("Tahoma", Font.PLAIN, 34)); + label_final.setHorizontalAlignment(SwingConstants.CENTER); + label_final.setForeground(Color.BLACK); + + mitte_center.add(label_final, BorderLayout.SOUTH); //Wunschfarben Button Listener @@ -176,7 +183,7 @@ public class Dashboard_GUI extends JPanel{ @Override public void mouseClicked(MouseEvent e) { aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.PIK); - btnpik.setVisible(false); + showwunsch(false); } }); @@ -186,7 +193,7 @@ public class Dashboard_GUI extends JPanel{ @Override public void mouseClicked(MouseEvent e) { aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.KARO); - btnkaro.setVisible(false); + showwunsch(false); } }); @@ -196,7 +203,7 @@ public class Dashboard_GUI extends JPanel{ @Override public void mouseClicked(MouseEvent e) { aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.KREUZ); - btnkreuz.setVisible(false); + showwunsch(false); } }); @@ -204,7 +211,7 @@ public class Dashboard_GUI extends JPanel{ @Override public void mouseClicked(MouseEvent e) { aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.HERZ); - btnherz.setVisible(false); + showwunsch(false); } }); @@ -244,6 +251,8 @@ public class Dashboard_GUI extends JPanel{ aktuellesSpiel = Spiel; System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); + showwunsch(false); + aussetzen.setVisible(false); aktuellesSpiel.spiel(this); aktualisiereGUI(); } @@ -373,16 +382,44 @@ public class Dashboard_GUI extends JPanel{ aktualisiereSpieleranzeige(); aktualisiereAblage(); aktualisiereHand(); + revalidate(); + repaint(); } - public void showwunsch(){ - btnpik.setVisible(true); - btnherz.setVisible(true); - btnkaro.setVisible(true); - btnkreuz.setVisible(true); + public void showwunsch(boolean status){ + btnpik.setVisible(status); + btnherz.setVisible(status); + btnkaro.setVisible(status); + btnkreuz.setVisible(status); mitte_unten.updateUI(); - //mitte_unten.revalidate(); - //mitte_unten.repaint(); + } + + public Farbe getwunschfarbe() { + + + + + + return Farbe.KARO; + } + + + public void gewonnen(Spieler spieler) { + + if(spieler == spieler.SPIELER) { + System.out.println("Spiel gewonnen"); + label_final.setText("Spiel gewonnen"); + } + if(spieler == spieler.COMPUTER) { + System.out.println("Spiel verloren"); + label_final.setText("Spiel verloren"); + } + player_hand.setVisible(false); + label_final.setVisible(true); + ablagestapel.setVisible(false); + rechts.setVisible(false); + updateUI(); + aktualisiereGUI(); } } From c60eaa92bb5bc6d2efd1eb8c5cc282603a164bed Mon Sep 17 00:00:00 2001 From: mokoe Date: Fri, 8 Jan 2021 12:49:27 +0100 Subject: [PATCH 04/10] =?UTF-8?q?Einf=C3=BCgen=20eines=20kleinen=20Zufalls?= =?UTF-8?q?elements=20bei=20Farbwahl=20des=20Computers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Computer_gegner.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index ada770d..9c713f8 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -3,6 +3,7 @@ package de.jaujau.spiellogik; import java.util.ArrayList; +import java.util.Random; import de.jaujau.daten.Farbe; import de.jaujau.daten.Kartensatz; @@ -184,11 +185,29 @@ public class Computer_gegner { hoechsteAnzahl = anzahl; wahl = farben[i]; } + if (hand.size() > 2) { + if(zufall(10) > 7) { + wahl = farben[zufall(4)]; + } + } } return wahl; } + /** + * Funktion, die eine zufällige Zahl zwischen 0 und einer andere Zahl r-1 ausgibt + * @param int r + * @return int zufällige Zahl + */ + private int zufall(int r){ + Random zufall = new Random(); + + int diced = 0; + diced = zufall.nextInt(r); + return diced; + } + /** * Funktion zählt für die jeweilige Farbe, wie viele Karten der Farbe auf der Hand des Computer sind * @param farbe, für welche gezählt werden soll From da2663e9069aea0b8604f7995a8a342d57abf2f8 Mon Sep 17 00:00:00 2001 From: mokoe Date: Fri, 8 Jan 2021 12:50:05 +0100 Subject: [PATCH 05/10] =?UTF-8?q?=C3=84nderung=20des=20kleinen=20Zufallsel?= =?UTF-8?q?ements=20bei=20Farbwahl=20des=20Computers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Computer_gegner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 9c713f8..fdf62d3 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -185,7 +185,7 @@ public class Computer_gegner { hoechsteAnzahl = anzahl; wahl = farben[i]; } - if (hand.size() > 2) { + if (hand.size() < 6 && hand.size() > 2) { if(zufall(10) > 7) { wahl = farben[zufall(4)]; } From 89c4a837b4fde248d7b1a2ab8ace97889feb3e27 Mon Sep 17 00:00:00 2001 From: mokoe Date: Fri, 8 Jan 2021 12:51:29 +0100 Subject: [PATCH 06/10] =?UTF-8?q?St=C3=A4rkerer=20Zufall=20bei=20Farbauswa?= =?UTF-8?q?hl=20des=20Computers,=20wenn=20weniger=20Karten=20auf=20dessen?= =?UTF-8?q?=20Hand=20sind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Computer_gegner.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index fdf62d3..4b05da1 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -190,6 +190,11 @@ public class Computer_gegner { wahl = farben[zufall(4)]; } } + if (hand.size() < 3) { + if(zufall(10) > 5) { + wahl = farben[zufall(4)]; + } + } } return wahl; From d5925866613c8ee0cd516ba1718bbb9c22172c77 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Fri, 8 Jan 2021 12:54:39 +0100 Subject: [PATCH 07/10] Methode wuenscher() hinzugefuegt, gewinn eingebaut --- src/de/jaujau/spiellogik/Spiel.java | 38 +++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 5636f11..80064aa 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -3,6 +3,7 @@ package de.jaujau.spiellogik; import java.util.Random; import de.jaujau.daten.Audio; +import de.jaujau.daten.Farbe; import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Spieler; import de.jaujau.daten.Wert; @@ -61,7 +62,7 @@ public class Spiel { * Initialisiert ein Spiel * @param dashboard */ - public void spiel(Dashboard_GUI dashboard) { + public void spiel() { System.out.println("\nSPIEL Spiel gestartet."); Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(2); @@ -92,7 +93,7 @@ public class Spiel { switch(computerZug) { case -2: //aussetzen anzeigen? aussetzen = false; - alternieren(dashboard); + alternieren(); break; case -1: karteZiehen(); @@ -113,7 +114,7 @@ public class Spiel { * Organisiert den Spielablauf * @param dashboard */ - private void alternieren(Dashboard_GUI dashboard) { + private void alternieren() { if(spielGewonnen) return; if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; @@ -124,7 +125,7 @@ public class Spiel { switch(computerZug) { case -2: aussetzen = false; - alternieren(dashboard); + alternieren(); break; case -1: karteZiehen(); @@ -149,19 +150,24 @@ public class Spiel { } + /** + * Wird aufgerufen wenn das Spiel entschieden wurde + * @param spieler Spieler, welcher gewonnen hat + */ private void gewinn(Spieler spieler) { - System.out.println("HERZLICHEN GLÜCKWUNSCH " + amZug + ". DU HAST GEWONNEN"); - dashboard.aktualisiereGUI(); + System.out.println("HERZLICHEN GLÜCKWUNSCH " + spieler + ". DU HAST GEWONNEN"); + dashboard.gewonnen(spieler); spielGewonnen = true; } + /** * Bietet die Möglichkeit auszusetzen */ public void aussetzen() { if(spielGewonnen) return; aussetzen = false;//alternieren wird aufgerufen bevor GUI fertig abgearbeitet. - alternieren(dashboard); + alternieren(); } /** @@ -189,7 +195,9 @@ public class Spiel { 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(kartensatz.getKarte(kartenindex).getWERT() == Wert.BUBE) { + if(amZug == Spieler.COMPUTER) alternieren(); + } } } @@ -212,7 +220,7 @@ public class Spiel { kartensatz.ziehen(amZug); System.out.println("\nSPIEL 1 Karte gezogen"); } - alternieren(dashboard); + alternieren(); } else { //AussetzenButton return; @@ -220,6 +228,16 @@ public class Spiel { } + /** + * Setzt die Wünscher Farbe + * @param farbe + */ + public void wuenscher(Farbe farbe) { + kartensatz.SetWunschfarbe(farbe); + alternieren(); + } + + /** * setzt Effekt-Variablen und Wunschfarbe für einen Wünscher */ @@ -238,7 +256,7 @@ public class Spiel { kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz)); } else { - dashboard.showwunsch(true); //Returnwert! + dashboard.showwunsch(true); } } System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen); From aa59623a4c02587218935a63622f9fadc2305e8b Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Fri, 8 Jan 2021 12:55:54 +0100 Subject: [PATCH 08/10] gewonnen eingebaut und wuenscher() hinzugefuegt --- src/de/jaujau/spiellogik/Spiel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 80064aa..f2a092b 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -203,7 +203,7 @@ public class Spiel { /** - * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt + * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt */ public void karteZiehen(){ if(spielGewonnen) return; From f33919cf6cad5b15f1dee911fda9132cec6cc6e2 Mon Sep 17 00:00:00 2001 From: mokoe Date: Fri, 8 Jan 2021 13:00:14 +0100 Subject: [PATCH 09/10] =?UTF-8?q?=C3=84nderung=20an=20der=20Entscheidungsf?= =?UTF-8?q?indung=20des=20Computers,=20so=20dass=20er=20im=20early=20Game?= =?UTF-8?q?=20nach=20Farbe=20und=20sp=C3=A4ter=20nach=20Wert=20legt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Computer_gegner.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 4b05da1..302b486 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -108,11 +108,24 @@ public class Computer_gegner { if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen rueckgabeindex = wertLegen(letztekartewert); } - else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen - rueckgabeindex = farbeLegen(letztekartefarbe); - } - else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen - rueckgabeindex = wertLegen(letztekartewert); + else if((wertInHand || farbeInHand) && !aussetzen && !ziehen) { + if (hand.size() > 3) { //Hat der Computer viele Karten in der Hand versucht er passende Farben zu legen, bei weniger Karten passende Werte + if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen + rueckgabeindex = farbeLegen(letztekartefarbe); + } + else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen + rueckgabeindex = wertLegen(letztekartewert); + } + } + else { + if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer die Wert auf der Hand, versucht er diese zu legen + rueckgabeindex = wertLegen(letztekartewert); + } + else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer nicht den passenden Wert, aber eine passende Farbe, legt er diese + rueckgabeindex = farbeLegen(letztekartefarbe); + } + + } } else if(bubeInHand && !aussetzen && !ziehen) { //Hat der Computer weder die passende Farbe, noch den passenden Wert auf der Hand, aber einen Wünscher, legt er diesen rueckgabeindex = wertLegen(Wert.BUBE); From 3090f8975249e2e9ed0ac0ad1e9428fc213aa073 Mon Sep 17 00:00:00 2001 From: ekresse Date: Fri, 8 Jan 2021 13:01:00 +0100 Subject: [PATCH 10/10] Update 1.5 --- src/de/jaujau/gui/Dashboard_GUI.java | 11 +++-------- src/de/jaujau/spiellogik/Spiel.java | 16 ++++++++-------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 6860bb4..281a64d 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -394,12 +394,7 @@ public class Dashboard_GUI extends JPanel{ mitte_unten.updateUI(); } - public Farbe getwunschfarbe() { - - - - - + public Farbe getwunschfarbe() { return Farbe.KARO; } @@ -411,8 +406,8 @@ public class Dashboard_GUI extends JPanel{ label_final.setText("Spiel gewonnen"); } if(spieler == spieler.COMPUTER) { - System.out.println("Spiel verloren"); - label_final.setText("Spiel verloren"); + System.out.println("Spieler verloren"); + label_final.setText("Spieler verloren"); } player_hand.setVisible(false); label_final.setVisible(true); diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index f2a092b..1c17e6d 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -62,7 +62,7 @@ public class Spiel { * Initialisiert ein Spiel * @param dashboard */ - public void spiel() { + public void spiel(Dashboard_GUI dashboard) { System.out.println("\nSPIEL Spiel gestartet."); Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(2); @@ -93,7 +93,7 @@ public class Spiel { switch(computerZug) { case -2: //aussetzen anzeigen? aussetzen = false; - alternieren(); + alternieren(dashboard); break; case -1: karteZiehen(); @@ -114,7 +114,7 @@ public class Spiel { * Organisiert den Spielablauf * @param dashboard */ - private void alternieren() { + private void alternieren(Dashboard_GUI dashboard) { if(spielGewonnen) return; if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; @@ -125,7 +125,7 @@ public class Spiel { switch(computerZug) { case -2: aussetzen = false; - alternieren(); + alternieren(dashboard); break; case -1: karteZiehen(); @@ -167,7 +167,7 @@ public class Spiel { public void aussetzen() { if(spielGewonnen) return; aussetzen = false;//alternieren wird aufgerufen bevor GUI fertig abgearbeitet. - alternieren(); + alternieren(dashboard); } /** @@ -196,7 +196,7 @@ public class Spiel { System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); effekteSetzen(); if(kartensatz.getKarte(kartenindex).getWERT() == Wert.BUBE) { - if(amZug == Spieler.COMPUTER) alternieren(); + if(amZug == Spieler.COMPUTER) alternieren(dashboard); } } } @@ -220,7 +220,7 @@ public class Spiel { kartensatz.ziehen(amZug); System.out.println("\nSPIEL 1 Karte gezogen"); } - alternieren(); + alternieren(dashboard); } else { //AussetzenButton return; @@ -234,7 +234,7 @@ public class Spiel { */ public void wuenscher(Farbe farbe) { kartensatz.SetWunschfarbe(farbe); - alternieren(); + alternieren(dashboard); }