This commit is contained in:
akarkout
2021-01-11 20:02:34 +01:00
14 changed files with 283 additions and 317 deletions

View File

@@ -10,6 +10,7 @@ import java.util.Random;
public class Kartensatz { public class Kartensatz {
private Karte kartensatz[]; private Karte kartensatz[];
private int letztekarte; private int letztekarte;
private boolean debug;
/** /**
* Konstruktor für den Kartensatz * Konstruktor für den Kartensatz
@@ -19,6 +20,7 @@ public class Kartensatz {
*/ */
public Kartensatz() { public Kartensatz() {
debug = true;
kartensatz = new Karte[32]; kartensatz = new Karte[32];
//Standart Skat Kartensatz erstellen //Standart Skat Kartensatz erstellen
@@ -116,7 +118,7 @@ public class Kartensatz {
} }
} }
else { else {
System.out.println("Keine Karten zum ziehen verfügbar!"); if(debug)System.out.println("Keine Karten zum ziehen verfügbar!");
return false; return false;
} }
return false; return false;

View File

@@ -42,6 +42,7 @@ public class Texturenpaket {
protected String name; //Protektet weil die abgeleitet Klasse TexturenpaketIntern auf die Werte zugreifen können muss protected String name; //Protektet weil die abgeleitet Klasse TexturenpaketIntern auf die Werte zugreifen können muss
protected int level; protected int level;
private final String pfad; private final String pfad;
private boolean debug;
/** /**
@@ -49,6 +50,7 @@ public class Texturenpaket {
* @param Pfad zu der Zip-Datei des Texturenpaketes * @param Pfad zu der Zip-Datei des Texturenpaketes
*/ */
public Texturenpaket(String Pfad) { public Texturenpaket(String Pfad) {
debug = true;
name = "Nicht geladen"; name = "Nicht geladen";
level = 0; level = 0;
pfad = Pfad; pfad = Pfad;
@@ -60,7 +62,7 @@ public class Texturenpaket {
* @return Paket vollständig geladen, true/false * @return Paket vollständig geladen, true/false
*/ */
public boolean ladePacket() { public boolean ladePacket() {
System.out.println("TEXTURENPAKET: Lade Paket"); if(debug)System.out.println("TEXTURENPAKET: Lade Paket");
if(testePaket()) { if(testePaket()) {
//Paket ist OK //Paket ist OK
@@ -82,12 +84,12 @@ public class Texturenpaket {
//Name Auslesen //Name Auslesen
if(Spalte[0].equals("name")) { if(Spalte[0].equals("name")) {
name = Spalte[1]; name = Spalte[1];
System.out.println("TEXTURENPAKET: Name: " + name); if(debug)System.out.println("TEXTURENPAKET: Name: " + name);
} }
//Level Auslesen //Level Auslesen
if(Spalte[0].equals("level")) { if(Spalte[0].equals("level")) {
level = Integer.parseInt(Spalte[1]); level = Integer.parseInt(Spalte[1]);
System.out.println("TEXTURENPAKET: Level: " + level); if(debug)System.out.println("TEXTURENPAKET: Level: " + level);
} }
} }
@@ -166,7 +168,7 @@ public class Texturenpaket {
* @return Paket vollständig, true/false * @return Paket vollständig, true/false
*/ */
private boolean testePaket() { private boolean testePaket() {
System.out.println("TEXTURENPAKET: Paket auf Fehler untersuchen:"); if(debug)System.out.println("TEXTURENPAKET: Paket auf Fehler untersuchen:");
//Testen ob Zip-Datei vorhanden und lesabar ist //Testen ob Zip-Datei vorhanden und lesabar ist
File zipDatei = new File(pfad); File zipDatei = new File(pfad);
if(zipDatei.exists() || zipDatei.canRead()) { if(zipDatei.exists() || zipDatei.canRead()) {
@@ -184,7 +186,7 @@ public class Texturenpaket {
while(scanner.hasNext()) { while(scanner.hasNext()) {
//Prüfen ob Konfigurations Datei die Einträge "name" und "level" enthält //Prüfen ob Konfigurations Datei die Einträge "name" und "level" enthält
String Zeile = scanner.nextLine(); String Zeile = scanner.nextLine();
System.out.println("TEXTURENPAKET: Konfigzeile:" + Zeile); if(debug)System.out.println("TEXTURENPAKET: Konfigzeile:" + Zeile);
if(Zeile.contains("name:")) { if(Zeile.contains("name:")) {
PaketName = true; PaketName = true;
} }
@@ -194,7 +196,7 @@ public class Texturenpaket {
} }
scanner.close(); scanner.close();
if(!PaketName || !PaketLevel) { if(!PaketName || !PaketLevel) {
System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft"); if(debug)System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft");
paketDatei.close(); paketDatei.close();
return false; return false;
} }
@@ -205,10 +207,10 @@ public class Texturenpaket {
InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur); InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur);
Image bild = ImageIO.read(eingabeStromTextur); Image bild = ImageIO.read(eingabeStromTextur);
if(bild == null) { if(bild == null) {
System.out.println("TEXTURENPAKET: Datei: " + i + ".png nicht gefunden"); if(debug)System.out.println("TEXTURENPAKET: Datei: " + i + ".png nicht gefunden");
return false; return false;
} }
System.out.println("TEXTURENPAKET: Datei: " + i + ".png OK!"); if(debug)System.out.println("TEXTURENPAKET: Datei: " + i + ".png OK!");
} }
paketDatei.close(); paketDatei.close();
@@ -229,7 +231,7 @@ public class Texturenpaket {
} }
//Alles OK //Alles OK
System.out.println("TEXTURENPAKET: Texturen Paket ist OK"); if(debug)System.out.println("TEXTURENPAKET: Texturen Paket ist OK");
return true; return true;
} }
} }

View File

@@ -12,13 +12,16 @@ public class Texturenpakete {
private ArrayList<Texturenpaket> TexturenpaketListe; private ArrayList<Texturenpaket> TexturenpaketListe;
private BufferedImage Texturen[]; private BufferedImage Texturen[];
private int AktivesPaket; private int AktivesPaket;
private boolean debug;
public Texturenpakete(){ public Texturenpakete(){
debug = true;
TexturenpaketListe = new ArrayList<Texturenpaket>(); TexturenpaketListe = new ArrayList<Texturenpaket>();
//Hinzufügen eines Internen Texturenpaketes //Hinzufügen eines Internen Texturenpaketes
TexturenpaketListe.add(new TexturenpaketIntern("/img/texturen/standart", "JauJau Standart Texturen Französisch", 0)); TexturenpaketListe.add(new TexturenpaketIntern("/img/texturen/standart", "JauJau Französisch", 0));
//Internes Texturenpaket als Aktiv festlegen //Internes Texturenpaket als Aktiv festlegen
setAktivesPaket(0); setAktivesPaket(0);
@@ -80,7 +83,7 @@ public class Texturenpakete {
if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) { if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
AktivesPaket = PaketNr; AktivesPaket = PaketNr;
Texturen = TexturenpaketListe.get(PaketNr).getTexturen(); Texturen = TexturenpaketListe.get(PaketNr).getTexturen();
System.out.println("TEXTURENPAKETE: Paket (" + PaketNr + ") '" + TexturenpaketListe.get(PaketNr).getName() + "' aktiv gesetzt!"); if(debug)System.out.println("TEXTURENPAKETE: Paket (" + PaketNr + ") '" + TexturenpaketListe.get(PaketNr).getName() + "' aktiv gesetzt!");
return true; return true;
} }
return false; return false;
@@ -98,7 +101,7 @@ public class Texturenpakete {
Texturenpaket NeuesPaket = new Texturenpaket(Pfad); Texturenpaket NeuesPaket = new Texturenpaket(Pfad);
if(NeuesPaket.ladePacket()) { if(NeuesPaket.ladePacket()) {
TexturenpaketListe.add(NeuesPaket); TexturenpaketListe.add(NeuesPaket);
System.out.println("TEXTURENPAKETE: Paket '" + NeuesPaket.getName() + "' hinzugfügt!"); if(debug)System.out.println("TEXTURENPAKETE: Paket '" + NeuesPaket.getName() + "' hinzugfügt!");
return true; return true;
} }
@@ -118,5 +121,17 @@ public class Texturenpakete {
} }
return Texturen[32]; return Texturen[32];
} }
/**
* Prüft ob mit dem Aktuellen level das akteulle Texturenpaket genutzet werden kann
* Wenn das nicht zutrifft wird das erste Standart Paket genutzt
* @param Level des aktuellen Spielers
*/
public void pruefeLevel(int Level) {
if(TexturenpaketListe.get(AktivesPaket).getLevel() > Level) {
setAktivesPaket(0);
}
}
} }

View File

@@ -32,24 +32,24 @@ import javax.swing.JButton;
public class Dashboard_GUI extends JPanel{ public class Dashboard_GUI extends JPanel{
private static final long serialVersionUID = -7380187913989942586L; private static final long serialVersionUID = -7380187913989942586L;
JPanel panelCont = new JPanel(); private JPanel panelCont = new JPanel();
JPanel highscore = new JPanel(); private JPanel highscore = new JPanel();
JPanel game = new JPanel(); private JPanel game = new JPanel();
JPanel start = new JPanel(); private JPanel start = new JPanel();
CardLayout cl = new CardLayout(); private CardLayout cl = new CardLayout();
Spielerverwaltung spielerverwaltung = new Spielerverwaltung(); private Spielerverwaltung spielerverwaltung = new Spielerverwaltung();
private final JPanel panel = new JPanel(); private final JPanel panel = new JPanel();
private final JPanel panel_1 = new JPanel(); private final JPanel panel_1 = new JPanel();
private JComboBox<String> comboBox = new JComboBox<String>(); private JComboBox<String> spielername = new JComboBox<String>();
private final JPanel panel_2 = new JPanel(); private final JPanel panel_2 = new JPanel();
private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar"); private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar");
private final JPanel spielfeld = new JPanel(); private final JPanel spielfeld = new JPanel();
private final JPanel player_hand = new JPanel(); private final JPanel player_hand = new JPanel();
private final JPanel gegner_hand = new JPanel(); private final JPanel gegner_hand = new JPanel();
JLabel ziehstapel = new JLabel(""); private JLabel ziehstapel = new JLabel("");
JPanel spielerkarten = new JPanel(); private JPanel spielerkarten = new JPanel();
JLabel labelsspieler[] = new JLabel[32]; private JLabel labelsspieler[] = new JLabel[32];
JLabel labelsgegner[] = new JLabel[32]; private JLabel labelsgegner[] = new JLabel[32];
private Spiel aktuellesSpiel; private Spiel aktuellesSpiel;
private JLabel label_aktuellerSpieler; private JLabel label_aktuellerSpieler;
private Texturenpakete texturenpakete; private Texturenpakete texturenpakete;
@@ -57,18 +57,23 @@ public class Dashboard_GUI extends JPanel{
private final JPanel info_panel = new JPanel(); private final JPanel info_panel = new JPanel();
private final JPanel rechts = new JPanel(); private final JPanel rechts = new JPanel();
private final JPanel mitte = new JPanel(); private final JPanel mitte = new JPanel();
JLabel ablagestapel = new JLabel(""); private JLabel ablagestapel = new JLabel("");
JButton aussetzen = new JButton("Aussetzen"); private JButton aussetzen = new JButton("Aussetzen");
JPanel mitte_unten = new JPanel(); private JPanel mitte_unten = new JPanel();
JPanel mitte_center = new JPanel(); private JPanel mitte_center = new JPanel();
private JPanel mitte_oben = new JPanel(); private JPanel mitte_oben = new JPanel();
private JButton btnherz = new JButton("Herz"); private JButton btnherz = new JButton("Herz");
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"); private final JLabel label_final = new JLabel("Spiel beendet");
private final JScrollPane gegnerkartenpane = new JScrollPane(); private JScrollPane gegnerkartenpane = new JScrollPane();
private final JPanel gegnerkarten = new JPanel(); private JPanel gegnerkarten = new JPanel();
private JButton getname = new JButton("setzen");
private JPanel panel_3 = new JPanel();
private final JLabel level_beschreibung = new JLabel("Aktuelles Level:");
private JLabel level_count = new JLabel("0");
private final JLabel lblNewLabel_2 = new JLabel("");
//Moving Image //Moving Image
@@ -224,18 +229,48 @@ public class Dashboard_GUI extends JPanel{
mitte.add(mitte_oben, BorderLayout.NORTH); mitte.add(mitte_oben, BorderLayout.NORTH);
mitte_oben.setLayout(new BorderLayout(0, 0)); mitte_oben.setLayout(new BorderLayout(0, 0));
start.setBackground(Color.WHITE);
start.setForeground(Color.WHITE);
panelCont.add(start, "3"); panelCont.add(start, "3");
start.setLayout(new BorderLayout(0, 0)); start.setLayout(new BorderLayout(0, 0));
panel.setBackground(Color.WHITE);
panel.setPreferredSize(new Dimension(10, 30)); panel.setPreferredSize(new Dimension(10, 30));
start.add(panel, BorderLayout.NORTH); start.add(panel, BorderLayout.NORTH);
JLabel lblNewLabel = new JLabel("Spielername:"); JLabel lblNewLabel = new JLabel("Spielername:");
panel.add(lblNewLabel); panel.add(lblNewLabel);
comboBox.setMinimumSize(new Dimension(60, 22)); spielername.setMinimumSize(new Dimension(60, 22));
comboBox.setEditable(true); spielername.setEditable(true);
panel.add(comboBox); panel.add(spielername);
panel.add(getname);
getname.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
getspielername();
}
});
panel_1.setBackground(Color.WHITE);
start.add(panel_1, BorderLayout.CENTER); start.add(panel_1, BorderLayout.CENTER);
panel_1.setLayout(new BorderLayout(0, 0));
panel_3.setBackground(Color.WHITE);
panel_3.setPreferredSize(new Dimension(100, 50));
panel_1.add(panel_3, BorderLayout.NORTH);
level_beschreibung.setHorizontalTextPosition(SwingConstants.CENTER);
level_beschreibung.setHorizontalAlignment(SwingConstants.CENTER);
level_beschreibung.setFont(new Font("Tahoma", Font.PLAIN, 22));
panel_3.add(level_beschreibung);
level_count.setFont(new Font("Tahoma", Font.PLAIN, 22));
panel_3.add(level_count);
lblNewLabel_2.setBackground(Color.LIGHT_GRAY);
lblNewLabel_2.setHorizontalTextPosition(SwingConstants.CENTER);
lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_2.setIcon(new ImageIcon(Dashboard_GUI.class.getResource("/img/jaujau.gif")));
panel_1.add(lblNewLabel_2, BorderLayout.CENTER);
start.add(panel_2, BorderLayout.SOUTH); start.add(panel_2, BorderLayout.SOUTH);
@@ -254,6 +289,7 @@ public class Dashboard_GUI extends JPanel{
public void showgame(Spiel Spiel){ public void showgame(Spiel Spiel){
//Neues Spiel wird übergeben //Neues Spiel wird übergeben
aktuellesSpiel = Spiel; aktuellesSpiel = Spiel;
texturenpakete.pruefeLevel(spielerverwaltung.getLevel());
System.out.println("DASHBOARD: Game darstellen"); System.out.println("DASHBOARD: Game darstellen");
cl.show(panelCont, "2"); cl.show(panelCont, "2");
showwunsch(false); showwunsch(false);
@@ -283,16 +319,16 @@ public class Dashboard_GUI extends JPanel{
public void renderStart(){ private void renderStart(){
comboBox.removeAllItems(); spielername.removeAllItems();
for(int i = 0; i<spielerverwaltung.gethighscoreTabelle().length; i++) { for(int i = 0; i<spielerverwaltung.gethighscoreTabelle().length; i++) {
comboBox.addItem(spielerverwaltung.gethighscoreTabelle()[i][0]); spielername.addItem(spielerverwaltung.gethighscoreTabelle()[i][0]);
} }
} }
// Highscore Tabelle // Highscore Tabelle
public void renderHighscore() { private void renderHighscore() {
@@ -318,7 +354,7 @@ public class Dashboard_GUI extends JPanel{
//Spielerhand GUI //Spielerhand GUI
public void aktualisiereHand() { private void aktualisiereHand() {
//Alle Elemente entfernen //Alle Elemente entfernen
for(Component c : spielerkarten.getComponents()){ for(Component c : spielerkarten.getComponents()){
spielerkarten.remove(c); spielerkarten.remove(c);
@@ -357,7 +393,7 @@ public class Dashboard_GUI extends JPanel{
//Gegnerhand GUI //Gegnerhand GUI
public void aktualisiereGegnerHand() { private void aktualisiereGegnerHand() {
//Alle Elemente entfernen //Alle Elemente entfernen
for(Component c : gegnerkarten.getComponents()){ for(Component c : gegnerkarten.getComponents()){
@@ -385,7 +421,7 @@ public class Dashboard_GUI extends JPanel{
// //
public void aktualisiereAblage(){ private void aktualisiereAblage(){
//Sleep oder Wait Funktion zum Verlangsamen der Anzeige //Sleep oder Wait Funktion zum Verlangsamen der Anzeige
@@ -394,7 +430,7 @@ public class Dashboard_GUI extends JPanel{
ablagestapel.repaint(); ablagestapel.repaint();
} }
public void aktualisiereSpieleranzeige() { private void aktualisiereSpieleranzeige() {
if(aktuellesSpiel.getamZug() == Spieler.COMPUTER) { if(aktuellesSpiel.getamZug() == Spieler.COMPUTER) {
label_aktuellerSpieler.setText("Gegner"); label_aktuellerSpieler.setText("Gegner");
label_aktuellerSpieler.setForeground(Color.RED); label_aktuellerSpieler.setForeground(Color.RED);
@@ -411,7 +447,7 @@ public class Dashboard_GUI extends JPanel{
} }
public void aktualisiereZiehen() { private void aktualisiereZiehen() {
for(Component c : rechts.getComponents()){ for(Component c : rechts.getComponents()){
rechts.remove(c); rechts.remove(c);
@@ -469,6 +505,12 @@ public class Dashboard_GUI extends JPanel{
} }
private String getspielername(){
System.out.println("DASHBOARD_GUI: " + spielername.getEditor().getItem());
return (String) (spielername.getEditor().getItem());
}
public void gewonnen(Spieler spieler) { public void gewonnen(Spieler spieler) {
if(spieler == SPIELER) { if(spieler == SPIELER) {

View File

@@ -9,25 +9,26 @@ import java.awt.Dimension;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Spielerverwaltung;
import de.jaujau.daten.Texturenpakete; import de.jaujau.daten.Texturenpakete;
import de.jaujau.spiellogik.Spiel; import de.jaujau.spiellogik.Spiel;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import javax.swing.BoxLayout; import javax.swing.BoxLayout;
import java.awt.Font; import java.awt.Font;
import java.awt.Toolkit;
/** /**
* Class GUI * Klasse GUI
* @author Elmar Kresse
* Diese Klasse gibt das JFrame und die Navigation und kann darüber die einzelnen Dashboard Tabs aufrufen und die Texturenauswahl und Hilfe anzeigen.
*/ */
public class GUI extends JFrame{ public class GUI extends JFrame{
// //
// Fields // Variablen
// //
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private boolean menuehidden = false; private boolean menuehidden = false;
@@ -35,18 +36,19 @@ public class GUI extends JFrame{
private Spiel aktuellesSpiel; private Spiel aktuellesSpiel;
// //
// Constructors // Konstruktor
// //
public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) { public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) {
setIconImage(Toolkit.getDefaultToolkit().getImage(GUI.class.getResource("/img/jaujau.png")));
setMinimumSize(new Dimension(1000, 600)); setMinimumSize(new Dimension(1000, 600));
//JFrame Variablen
// jaujau.getAktuellesSpiel();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JauJau"); setTitle("JauJau");
setPreferredSize(new Dimension(800, 500)); setPreferredSize(new Dimension(800, 500));
setSize(1565, 916); setSize(1565, 916);
getContentPane().setLayout(new BorderLayout(0, 0)); getContentPane().setLayout(new BorderLayout(0, 0));
JPanel Menue = new JPanel(); JPanel Menue = new JPanel();
Menue.setPreferredSize(new Dimension(270, 450)); Menue.setPreferredSize(new Dimension(270, 450));
@@ -113,26 +115,27 @@ public class GUI extends JFrame{
gamelabel.setBounds(0, 91, 220, 29); gamelabel.setBounds(0, 91, 220, 29);
menuhide.add(gamelabel); menuhide.add(gamelabel);
//Texturen Label
JLabel texturenlabel = new JLabel("Texturen"); JLabel texturenlabel = new JLabel("Texturen");
texturenlabel.setHorizontalAlignment(SwingConstants.CENTER); texturenlabel.setHorizontalAlignment(SwingConstants.CENTER);
texturenlabel.setForeground(Color.WHITE); texturenlabel.setForeground(Color.WHITE);
texturenlabel.setFont(new Font("Tahoma", Font.PLAIN, 24)); texturenlabel.setFont(new Font("Tahoma", Font.PLAIN, 24));
texturenlabel.setBounds(0, 131, 220, 29); texturenlabel.setBounds(0, 131, 220, 29);
menuhide.add(texturenlabel); menuhide.add(texturenlabel);
//Dashboard hinzufügen
JPanel dashboard = new JPanel(); JPanel dashboard = new JPanel();
dashboard.setBackground(new Color(73, 128, 242)); dashboard.setBackground(new Color(73, 128, 242));
getContentPane().add(dashboard, BorderLayout.CENTER); getContentPane().add(dashboard, BorderLayout.CENTER);
dashboard.setLayout(new BorderLayout(0, 0)); dashboard.setLayout(new BorderLayout(0, 0));
Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel, texturenpakete); Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel, texturenpakete);
//Spiel_GUI Spiel_GUI = new Spiel_GUI();
dashboard.add(Dashboard_GUI, BorderLayout.CENTER); dashboard.add(Dashboard_GUI, BorderLayout.CENTER);
//Event Listener //Event Listener für die Buttons / Label
//Sidemenue Anzeigen Einklappen
menuebtn.addMouseListener(new MouseAdapter() { menuebtn.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
@@ -148,8 +151,8 @@ public class GUI extends JFrame{
} }
}); });
//Hilfe anzeigen/ausblenden
help.addMouseListener(new MouseAdapter() { help.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
if(frame.isShowing() == true) { if(frame.isShowing() == true) {
@@ -161,11 +164,11 @@ public class GUI extends JFrame{
} }
}); });
//Spiel starten -- Label zum starten des Spiels
gamelabel.addMouseListener(new MouseAdapter() { gamelabel.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
aktuellesSpiel = new Spiel(Dashboard_GUI); aktuellesSpiel = new Spiel(Dashboard_GUI);
System.out.println("GUI: Spiel GUI ge<EFBFBD>ffnet"); System.out.println("GUI: Spiel GUI geöffnet");
Dashboard_GUI.showgame(aktuellesSpiel); Dashboard_GUI.showgame(aktuellesSpiel);
} }
}); });
@@ -174,7 +177,7 @@ public class GUI extends JFrame{
highscorelabel.addMouseListener(new MouseAdapter() { highscorelabel.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
System.out.println("GUI: Highscore ge<EFBFBD>ffnet"); System.out.println("GUI: Highscore geöffnet");
Dashboard_GUI.showhighscore(); Dashboard_GUI.showhighscore();
} }
}); });
@@ -184,7 +187,7 @@ public class GUI extends JFrame{
startlabel.addMouseListener(new MouseAdapter() { startlabel.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
System.out.println("GUI: Start ge<EFBFBD>ffnet"); System.out.println("GUI: Start geöffnet");
Dashboard_GUI.showstart(); Dashboard_GUI.showstart();
} }
}); });
@@ -194,7 +197,8 @@ public class GUI extends JFrame{
texturenlabel.addMouseListener(new MouseAdapter() { texturenlabel.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
texturenauswaehlen_GUI texturenauswahl = new texturenauswaehlen_GUI(texturenpakete); texturenauswaehlen_GUI texturenauswahl = new texturenauswaehlen_GUI(texturenpakete, speicherung);
System.out.println("GUI: Start geöffnet");
texturenauswahl.setVisible(true); texturenauswahl.setVisible(true);
} }
}); });

View File

@@ -13,13 +13,15 @@ import javax.swing.JTextArea;
public class Hilfe_GUI extends JFrame { public class Hilfe_GUI extends JFrame {
/** /**
* * Klasse Hilfe_GUI
* @author Elmar Kresse
* Diese Klasse erstelt ein Fenster für die Hilfe
*/ */
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private JPanel contentPane; private JPanel contentPane;
/** /**
* Create the frame. * Erstelle das JFrame
*/ */
public Hilfe_GUI() { public Hilfe_GUI() {
setAlwaysOnTop(true); setAlwaysOnTop(true);

View File

@@ -1,126 +0,0 @@
package de.jaujau.gui;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import javax.swing.BoxLayout;
import java.awt.Component;
import javax.swing.ImageIcon;
public class Navigation_GUI
extends JPanel
implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel panel;
// Konstruktor
public Navigation_GUI() {
// Hiermit bekommst du Zugriff auf das <20>bergebene Objekt mainPanel
setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
panel = new JPanel();
panel.setBackground(new Color(102, 153, 204));
add(panel);
panel.setLayout(new BorderLayout(0, 0));
JPanel panel_side = new JPanel();
panel_side.setBackground(new Color(100, 149, 237));
panel_side.setPreferredSize(new Dimension(200, 400));
panel.add(panel_side, BorderLayout.CENTER);
panel_side.setLayout(new BorderLayout(0, 0));
JPanel panel_buttons = new JPanel();
panel_buttons.setBackground(new Color(0, 0, 128));
panel_buttons.setPreferredSize(new Dimension(50, 200));
panel_side.add(panel_buttons, BorderLayout.WEST);
panel_buttons.setLayout(new BorderLayout(0, 0));
JPanel panel = new JPanel();
panel.setBackground(new Color(0, 0, 153));
panel.setPreferredSize(new Dimension(50, 50));
panel_buttons.add(panel, BorderLayout.NORTH);
panel.setLayout(new BorderLayout(0, 0));
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setPreferredSize(new Dimension(50, 50));
lblNewLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
lblNewLabel.setHorizontalTextPosition(SwingConstants.CENTER);
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
ImageIcon imageIcon = new ImageIcon(new ImageIcon("C:\\Users\\Elmar\\Pictures\\exit.png").getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));
lblNewLabel.setIcon(imageIcon);
panel.add(lblNewLabel, BorderLayout.CENTER);
JPanel panel_1 = new JPanel();
panel_side.add(panel_1, BorderLayout.CENTER);
JPanel panel_2 = new JPanel();
panel_2.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
});
panel_2.setBackground(new Color(0, 102, 204));
JLabel lblNewLabel_1 = new JLabel("Start");
lblNewLabel_1.setBackground(new Color(0, 102, 204));
lblNewLabel_1.setForeground(Color.WHITE);
lblNewLabel_1.setFont(new Font("Tahoma", Font.PLAIN, 20));
panel_2.add(lblNewLabel_1);
JLabel label = new JLabel("");
JPanel panel_3 = new JPanel();
panel_3.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
});
panel_3.setBackground(new Color(0, 102, 204));
JLabel lblNewLabel_2 = new JLabel("Highscore");
lblNewLabel_2.setForeground(new Color(255, 255, 255));
lblNewLabel_2.setFont(new Font("Tahoma", Font.PLAIN, 20));
panel_3.add(lblNewLabel_2);
panel_1.setLayout(new GridLayout(0, 1, 0, 0));
panel_1.add(panel_2);
JLabel label_1 = new JLabel("");
panel_1.add(label_1);
JLabel label_2 = new JLabel("");
panel_1.add(label_2);
panel_1.add(label);
panel_1.add(panel_3);
//Schlie<69>e Button Panel
panel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
panel_1.setVisible(false);
}
});
}
// In dieser Methode <20>nderst du das anzuzeigende Panel
// <20>ber die showPanel-Methode in mainPanel
public void actionPerformed(ActionEvent e) {
}
}

View File

@@ -1,10 +1,9 @@
package de.jaujau.gui; package de.jaujau.gui;
import java.awt.BorderLayout;
import java.awt.Font; import java.awt.Font;
import java.awt.Image; import java.awt.Image;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import javax.swing.JButton; import javax.swing.JButton;
@@ -14,33 +13,46 @@ import javax.swing.JPanel;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import de.jaujau.daten.Spielerverwaltung;
import de.jaujau.daten.Texturenpakete; import de.jaujau.daten.Texturenpakete;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
/** /**
* Klasse texturenauswaehlen_GUI * Klasse texturenauswaehlen_GUI
* @author Sebastian Kacza
* Diese Klasse erstelt ein Fenster für die Texturenpaket auswahl
*/ */
public class texturenauswaehlen_GUI extends JFrame{ public class texturenauswaehlen_GUI extends JFrame{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private JPanel contentPane; private JPanel contentPane;
private Texturenpakete pakete; private Texturenpakete pakete;
private JComboBox comboBox; private JComboBox<String> comboBox;
private JLabel vorschaubild; private JLabel vorschaubild;
private JButton speichern, hinzufuegen, schliessen; private JButton speichern, hinzufuegen, schliessen;
private Spielerverwaltung spielerverwaltung;
public texturenauswaehlen_GUI (Texturenpakete texturenpakete) {
/**
* Konstruktor fpr das Fenster
* @param texturenpakete
*/
public texturenauswaehlen_GUI (Texturenpakete texturenpakete, Spielerverwaltung spieler) {
pakete = texturenpakete; pakete = texturenpakete;
erstelleFenster(); erstelleFenster();
aktualisiereInhalt(); aktualisiereInhalt();
spielerverwaltung = spieler;
} }
/**
* Erstelt alle komponenten des Fensters
*/
private void erstelleFenster() { private void erstelleFenster() {
//Fenster größen fetslegen //Fenster größen fetslegen
setAlwaysOnTop(true); setAlwaysOnTop(true);
setBounds(100, 100, 588, 558); setBounds(100, 100, 391, 361);
contentPane = new JPanel(); contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane); setContentPane(contentPane);
@@ -49,45 +61,50 @@ public class texturenauswaehlen_GUI extends JFrame{
//Vorschaubild //Vorschaubild
vorschaubild = new JLabel(); vorschaubild = new JLabel();
vorschaubild.setBounds(117, 111, 167, 214); vorschaubild.setBounds(32, 79, 167, 214);
contentPane.add(vorschaubild); contentPane.add(vorschaubild);
//Text "Texturenauswahl" //Text "Texturenauswahl"
JLabel lblNewLabel = new JLabel("Texturenauswahl"); JLabel lblNewLabel = new JLabel("Texturenauswahl");
lblNewLabel.setBounds(5, 5, 562, 25); lblNewLabel.setBounds(34, 11, 304, 25);
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 20)); lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
contentPane.add(lblNewLabel); contentPane.add(lblNewLabel);
//Teste Hinzufügen //Teste Hinzufügen
hinzufuegen = new JButton("Hinzuf\u00FCgen"); hinzufuegen = new JButton("Hinzuf\u00FCgen");
hinzufuegen.setBounds(309, 125, 137, 23); hinzufuegen.setBounds(209, 82, 137, 23);
hinzufuegen.addActionListener(e-> paketHinzufuegeb()); hinzufuegen.addActionListener(e-> paketHinzufuegeb());
contentPane.add(hinzufuegen); contentPane.add(hinzufuegen);
//Teste Speichern //Teste Speichern
speichern = new JButton("Speichern"); speichern = new JButton("Speichern");
speichern.setBounds(306, 231, 140, 23); speichern.setBounds(209, 180, 140, 23);
speichern.addActionListener(e-> speichern()); speichern.addActionListener(e-> speichern());
contentPane.add(speichern); contentPane.add(speichern);
//Teste Schießen //Teste Schießen
schliessen = new JButton("Schlie\u00DFen"); schliessen = new JButton("Schlie\u00DFen");
schliessen.setBounds(306, 177, 140, 23); schliessen.setBounds(209, 130, 140, 23);
schliessen.addActionListener(e-> schliessen()); schliessen.addActionListener(e-> schliessen());
contentPane.add(schliessen); contentPane.add(schliessen);
//Auswahl Box //Auswahl Box
comboBox = new JComboBox(); comboBox = new JComboBox<String>();
comboBox.setBounds(117, 69, 351, 25); comboBox.setBounds(10, 37, 351, 25);
contentPane.add(comboBox); contentPane.add(comboBox);
aktualisiereInhalt(); aktualisiereInhalt();
} }
/**
* Öffent einen auswahl dialog zu Öfnnen einer Datei
* Bei klick auf OK wird das Paket hinzugefügt
*/
private void paketHinzufuegeb() { private void paketHinzufuegeb() {
//Quelle: https://www.java-tutorial.org/jfilechooser.html //Quelle: https://www.java-tutorial.org/jfilechooser.html
@@ -101,31 +118,48 @@ public class texturenauswaehlen_GUI extends JFrame{
pakete.addPaket(chooser.getSelectedFile().toString()); pakete.addPaket(chooser.getSelectedFile().toString());
aktualisiereInhalt(); aktualisiereInhalt();
} }
} }
/**
* Schießt das Auswahlfenster
*/
private void schliessen() { private void schliessen() {
this.setVisible(false); this.setVisible(false);
} }
/**
* Speichert die Auswahl des akutellen Paketes
*/
private void speichern() { private void speichern() {
// Austauschen sobalt Spielerverwaltung fertig
// if(spieler.getLevel() >= pakete.getLevel(comboBox.getSelectedIndex())) {
// pakete.setAktivesPaket(comboBox.getSelectedIndex());
// aktualisiereBild();
//
// }
pakete.setAktivesPaket(comboBox.getSelectedIndex()); pakete.setAktivesPaket(comboBox.getSelectedIndex());
aktualisiereBild(); aktualisiereBild();
} }
/**
* Aktualisiert die Inhalte der ComboBox
*/
private void aktualisiereInhalt() { private void aktualisiereInhalt() {
comboBox.removeAllItems(); comboBox.removeAllItems();
for(int i = 0; i < pakete.getAnzahlPakete(); i++) { for(int i = 0; i < pakete.getAnzahlPakete(); i++) {
comboBox.addItem(pakete.getName(i)); comboBox.addItem(pakete.getName(i) + " [Level " + pakete.getLevel(i) + "]");
} }
comboBox.setSelectedIndex(pakete.getAktivesPaket()); comboBox.setSelectedIndex(pakete.getAktivesPaket());
aktualisiereBild(); aktualisiereBild();
} }
/**
* Aktualisiert das Vorschaubild
*/
private void aktualisiereBild() { private void aktualisiereBild() {
vorschaubild.setIcon(new ImageIcon(pakete.getTextur(32).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); vorschaubild.setIcon(new ImageIcon(pakete.getTextur(32).getScaledInstance(150, 210, Image.SCALE_SMOOTH)));
} }

View File

@@ -7,6 +7,8 @@
*/ */
package de.jaujau.spiellogik; package de.jaujau.spiellogik;
import javax.swing.ImageIcon;
import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Spielerverwaltung;
import de.jaujau.daten.Texturenpakete; import de.jaujau.daten.Texturenpakete;
import de.jaujau.gui.GUI; import de.jaujau.gui.GUI;

View File

@@ -30,6 +30,7 @@ public class Computer_gegner {
private Kartensatz kartensatz; private Kartensatz kartensatz;
private boolean siebenInHand; private boolean siebenInHand;
private boolean achtInHand; private boolean achtInHand;
private boolean debug = false;
// //
// Constructors // Constructors
// //
@@ -103,7 +104,9 @@ public class Computer_gegner {
Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE();
Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT();
if((farbeHK == letztekartefarbe && wertHK == Wert.ACHT) || (wertHK == letztekartewert && wertHK == Wert.ACHT)) { if((farbeHK == letztekartefarbe && wertHK == Wert.ACHT) || (wertHK == letztekartewert && wertHK == Wert.ACHT)) {
System.out.println("COMPUTER: Ausnahme 1"); if (debug) {
System.out.println("COMPUTER: Ausnahme 1");
}
return hand.get(i); return hand.get(i);
} }
} }
@@ -116,7 +119,9 @@ public class Computer_gegner {
Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE();
Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT();
if((farbeHK == letztekartefarbe && wertHK == Wert.SIEBEN) || (wertHK == letztekartewert && wertHK == Wert.SIEBEN)) { if((farbeHK == letztekartefarbe && wertHK == Wert.SIEBEN) || (wertHK == letztekartewert && wertHK == Wert.SIEBEN)) {
System.out.println("COMPUTER: Ausnahme 2"); if (debug) {
System.out.println("COMPUTER: Ausnahme 2");
}
return hand.get(i); return hand.get(i);
} }
} }
@@ -125,42 +130,56 @@ public class Computer_gegner {
//W<>hlt aus, welche Karte gelegt wird //W<>hlt aus, welche Karte gelegt wird
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);
System.out.println("COMPUTER: Fall 1"); if (debug) {
System.out.println("COMPUTER: Fall 1");
}
} }
else if((wertInHand || farbeInHand) && !aussetzen && !ziehen) { 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 (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 if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen
rueckgabeindex = farbeLegen(letztekartefarbe); rueckgabeindex = farbeLegen(letztekartefarbe);
System.out.println("COMPUTER: Fall 2"); if (debug) {
System.out.println("COMPUTER: Fall 2");
}
} }
else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen
rueckgabeindex = wertLegen(letztekartewert); rueckgabeindex = wertLegen(letztekartewert);
System.out.println("COMPUTER: Fall 3"); if (debug) {
System.out.println("COMPUTER: Fall 3");
}
} }
} }
else { else {
if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer die Wert auf der Hand, versucht er diese zu legen if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer die Wert auf der Hand, versucht er diese zu legen
rueckgabeindex = wertLegen(letztekartewert); rueckgabeindex = wertLegen(letztekartewert);
System.out.println("COMPUTER: Fall 4"); if (debug) {
System.out.println("COMPUTER: Fall 4");
}
} }
else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer nicht den passenden Wert, aber eine passende Farbe, legt er diese else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer nicht den passenden Wert, aber eine passende Farbe, legt er diese
rueckgabeindex = farbeLegen(letztekartefarbe); rueckgabeindex = farbeLegen(letztekartefarbe);
System.out.println("COMPUTER: Fall 5"); if (debug) {
System.out.println("COMPUTER: Fall 5");
}
} }
} }
} }
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);
System.out.println("COMPUTER: Fall 6"); if (debug) {
System.out.println("COMPUTER: Fall 6");
}
} }
else if(aussetzen && !wertInHand) { //Muss der Computer aussetzen und kann nicht reagieren, gibt er eine -2 zur<75>ck else if(aussetzen && !wertInHand) { //Muss der Computer aussetzen und kann nicht reagieren, gibt er eine -2 zur<75>ck
rueckgabeindex = -2; rueckgabeindex = -2;
System.out.println("COMPUTER: Fall 7"); if (debug) {
System.out.println("COMPUTER: Fall 7");
}
} }

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();
} }
@@ -147,17 +148,17 @@ public class Spiel {
/** /**
* Wird aufgerufen wenn das Spiel entschieden wurde, f<>hrt zum Spielende * Wird aufgerufen wenn das Spiel entschieden wurde, f<>hrt zum Spielende
* @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);
} }
} }

View File

@@ -21,8 +21,9 @@ public class Spielzug {
// //
private Kartensatz kartensatz; private Kartensatz kartensatz;
private boolean debug = true;
// //
// Constructors // Constructors
// //
public Spielzug (Kartensatz karten) { public Spielzug (Kartensatz karten) {
@@ -46,28 +47,40 @@ public class Spielzug {
Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT(); Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT();
Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
System.out.println("SPIELZUG: Versucht Karte f<>r Funktion: " + kartenindex); if (debug) {
System.out.println("SPIELZUG: Letzte Karte f<>r Funktion: " + letztekartewert + " " + letztekartefarbe); System.out.println("SPIELZUG: Versucht Karte f<>r Funktion: " + kartenindex);
System.out.println("SPIELZUG: Letzte Karte f<>r Funktion: " + letztekartewert + " " + letztekartefarbe);
}
if(aussetzen && kartenwert == Wert.ACHT) { if(aussetzen && kartenwert == Wert.ACHT) {
System.out.println("SPIELZUG: Bedingung 1"); if (debug) {
System.out.println("SPIELZUG: Bedingung 1");
}
return true; return true;
} }
else if(aussetzen && !(kartenwert == Wert.ACHT)) { else if(aussetzen && !(kartenwert == Wert.ACHT)) {
System.out.println("SPIELZUG: Bedingung 2"); if (debug) {
System.out.println("SPIELZUG: Bedingung 2");
}
return false; return false;
} }
else if (ziehen && kartenwert == Wert.SIEBEN) { else if (ziehen && kartenwert == Wert.SIEBEN) {
System.out.println("SPIELZUG: Bedingung 3"); if (debug) {
System.out.println("SPIELZUG: Bedingung 3");
}
return true; return true;
} }
else if (!aussetzen && !ziehen && ((kartenwert == letztekartewert || kartenfarbe == letztekartefarbe) || kartenwert == Wert.BUBE)) { else if (!aussetzen && !ziehen && ((kartenwert == letztekartewert || kartenfarbe == letztekartefarbe) || kartenwert == Wert.BUBE)) {
System.out.println("SPIELZUG: Bedingung 4"); if (debug) {
System.out.println("SPIELZUG: Aussetzen: " + aussetzen + " ziehen:" + ziehen); System.out.println("SPIELZUG: Bedingung 4");
System.out.println("SPIELZUG: Aussetzen: " + aussetzen + " ziehen:" + ziehen);
}
return true; return true;
} }
else { else {
System.out.println("SPIELZUG: Bedingung 5"); if (debug) {
System.out.println("SPIELZUG: Bedingung 5");
}
return false; return false;
} }
} }
@@ -90,48 +103,4 @@ public class Spielzug {
} }
return gefunden; return gefunden;
} }
////
//
// Methods
//
//
// Accessor methods
//
//
// Other methods
//
/**
* @param spieler
* @param kartensatz
*/
public static void legen(Spielerdaten spieler, Kartensatz kartensatz)
{
}
/**
* @param spieler
* @param kartensatz
*/
public static void aussetzen(Spielerdaten spieler, Kartensatz kartensatz)
{
}
/**
* @param spieler
* @param kartensatz
* @param anzahl
*/
public static void ziehen(Spielerdaten spieler, Kartensatz kartensatz, int anzahl)
{
}
} }

BIN
src/img/jaujau.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
src/img/jaujau.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB