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 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,39 @@ 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("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.Random;
import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz;
@@ -107,12 +108,25 @@ 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
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);
}
@@ -184,11 +198,34 @@ public class Computer_gegner {
hoechsteAnzahl = anzahl;
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;
}
/**
* 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
* @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 de.jaujau.daten.Audio;
import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz;
import de.jaujau.daten.Spieler;
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) {
System.out.println("HERZLICHEN GL<47>CKWUNSCH " + amZug + ". DU HAST GEWONNEN");
dashboard.aktualisiereGUI();
System.out.println("HERZLICHEN GL<47>CKWUNSCH " + spieler + ". DU HAST GEWONNEN");
dashboard.gewonnen(spieler);
spielGewonnen = true;
}
/**
* Bietet die M<>glichkeit auszusetzen
*/
@@ -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(dashboard);
}
}
}
@@ -220,6 +228,16 @@ public class Spiel {
}
/**
* Setzt die W<>nscher Farbe
* @param farbe
*/
public void wuenscher(Farbe farbe) {
kartensatz.SetWunschfarbe(farbe);
alternieren(dashboard);
}
/**
* 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(); //Returnwert!
dashboard.showwunsch(true);
}
}
System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen + "\nSPIEL Anzahl: " + kartenZiehen);