This commit is contained in:
Sebastian Kacza
2021-01-08 13:18:14 +01:00
3 changed files with 109 additions and 22 deletions

View File

@@ -64,6 +64,7 @@ public class Dashboard_GUI extends JPanel{
private JButton btnpik = new JButton("Pik"); private JButton btnpik = new JButton("Pik");
private JButton btnkaro = new JButton("Karo"); private JButton btnkaro = new JButton("Karo");
private JButton btnkreuz = new JButton("Kreuz"); private JButton btnkreuz = new JButton("Kreuz");
private final JLabel label_final = new JLabel("Spiel beendet");
public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) { public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) {
setMinimumSize(new Dimension(1000, 600)); setMinimumSize(new Dimension(1000, 600));
@@ -167,6 +168,12 @@ public class Dashboard_GUI extends JPanel{
mitte.add(mitte_center); 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 //Wunschfarben Button Listener
@@ -176,7 +183,7 @@ public class Dashboard_GUI extends JPanel{
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.PIK); aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.PIK);
btnpik.setVisible(false); showwunsch(false);
} }
}); });
@@ -186,7 +193,7 @@ public class Dashboard_GUI extends JPanel{
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.KARO); aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.KARO);
btnkaro.setVisible(false); showwunsch(false);
} }
}); });
@@ -196,7 +203,7 @@ public class Dashboard_GUI extends JPanel{
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.KREUZ); aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.KREUZ);
btnkreuz.setVisible(false); showwunsch(false);
} }
}); });
@@ -204,7 +211,7 @@ public class Dashboard_GUI extends JPanel{
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.HERZ); aktuellesSpiel.getKartensatz().SetWunschfarbe(Farbe.HERZ);
btnherz.setVisible(false); showwunsch(false);
} }
}); });
@@ -244,6 +251,8 @@ public class Dashboard_GUI extends JPanel{
aktuellesSpiel = Spiel; aktuellesSpiel = Spiel;
System.out.println("DASHBOARD: Game darstellen"); System.out.println("DASHBOARD: Game darstellen");
cl.show(panelCont, "2"); cl.show(panelCont, "2");
showwunsch(false);
aussetzen.setVisible(false);
aktuellesSpiel.spiel(this); aktuellesSpiel.spiel(this);
aktualisiereGUI(); aktualisiereGUI();
} }
@@ -373,16 +382,39 @@ public class Dashboard_GUI extends JPanel{
aktualisiereSpieleranzeige(); aktualisiereSpieleranzeige();
aktualisiereAblage(); aktualisiereAblage();
aktualisiereHand(); aktualisiereHand();
revalidate();
repaint();
} }
public void showwunsch(){ public void showwunsch(boolean status){
btnpik.setVisible(true); btnpik.setVisible(status);
btnherz.setVisible(true); btnherz.setVisible(status);
btnkaro.setVisible(true); btnkaro.setVisible(status);
btnkreuz.setVisible(true); btnkreuz.setVisible(status);
mitte_unten.updateUI(); 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("Spieler verloren");
label_final.setText("Spieler verloren");
}
player_hand.setVisible(false);
label_final.setVisible(true);
ablagestapel.setVisible(false);
rechts.setVisible(false);
updateUI();
aktualisiereGUI();
} }
} }

View File

@@ -3,6 +3,7 @@ package de.jaujau.spiellogik;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Random;
import de.jaujau.daten.Farbe; import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Kartensatz;
@@ -107,11 +108,24 @@ public class Computer_gegner {
if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen
rueckgabeindex = wertLegen(letztekartewert); rueckgabeindex = wertLegen(letztekartewert);
} }
else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen else if((wertInHand || farbeInHand) && !aussetzen && !ziehen) {
rueckgabeindex = farbeLegen(letztekartefarbe); 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
else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen rueckgabeindex = farbeLegen(letztekartefarbe);
rueckgabeindex = wertLegen(letztekartewert); }
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 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); rueckgabeindex = wertLegen(Wert.BUBE);
@@ -184,11 +198,34 @@ public class Computer_gegner {
hoechsteAnzahl = anzahl; hoechsteAnzahl = anzahl;
wahl = farben[i]; wahl = farben[i];
} }
if (hand.size() < 6 && hand.size() > 2) {
if(zufall(10) > 7) {
wahl = farben[zufall(4)];
}
}
if (hand.size() < 3) {
if(zufall(10) > 5) {
wahl = farben[zufall(4)];
}
}
} }
return wahl; return wahl;
} }
/**
* Funktion, die eine zuf<75>llige Zahl zwischen 0 und einer andere Zahl r-1 ausgibt
* @param int r
* @return int zuf<75>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 * 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<65>hlt werden soll * @param farbe, f<>r welche gez<65>hlt werden soll

View File

@@ -3,6 +3,7 @@ package de.jaujau.spiellogik;
import java.util.Random; import java.util.Random;
import de.jaujau.daten.Audio; import de.jaujau.daten.Audio;
import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Kartensatz;
import de.jaujau.daten.Spieler; import de.jaujau.daten.Spieler;
import de.jaujau.daten.Wert; import de.jaujau.daten.Wert;
@@ -149,12 +150,17 @@ public class Spiel {
} }
/**
* Wird aufgerufen wenn das Spiel entschieden wurde
* @param spieler Spieler, welcher gewonnen hat
*/
private void gewinn(Spieler spieler) { private void gewinn(Spieler spieler) {
System.out.println("HERZLICHEN GL<47>CKWUNSCH " + amZug + ". DU HAST GEWONNEN"); System.out.println("HERZLICHEN GL<47>CKWUNSCH " + spieler + ". DU HAST GEWONNEN");
dashboard.aktualisiereGUI(); dashboard.gewonnen(spieler);
spielGewonnen = true; spielGewonnen = true;
} }
/** /**
* Bietet die M<>glichkeit auszusetzen * Bietet die M<>glichkeit auszusetzen
*/ */
@@ -189,13 +195,15 @@ public class Spiel {
System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
effekteSetzen(); effekteSetzen();
alternieren(dashboard); if(kartensatz.getKarte(kartenindex).getWERT() == Wert.BUBE) {
if(amZug == Spieler.COMPUTER) alternieren(dashboard);
}
} }
} }
/** /**
* falls eine oder mehrere Karten gezogen werden k<>nnen, wird dies ausgef<65>hrt * falls eine oder mehrere Karten gezogen werden k<>nnen, wird dies ausgef<65>hrt
*/ */
public void karteZiehen(){ public void karteZiehen(){
if(spielGewonnen) return; if(spielGewonnen) return;
@@ -221,7 +229,17 @@ public class Spiel {
/** /**
* setzt Effekt-Variablen und Wunschfarbe f<>r einen W<>nscher * Setzt die W<EFBFBD>nscher Farbe
* @param farbe
*/
public void wuenscher(Farbe farbe) {
kartensatz.SetWunschfarbe(farbe);
alternieren(dashboard);
}
/**
* setzt Effekt-Variablen und Wunschfarbe f<>r einen W<>nscher
*/ */
private void effekteSetzen() { private void effekteSetzen() {
if(spielGewonnen) return; if(spielGewonnen) return;
@@ -238,7 +256,7 @@ public class Spiel {
kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz)); kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz));
} }
else { else {
dashboard.showwunsch(); //Returnwert! dashboard.showwunsch(true);
} }
} }
System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen); System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen);