diff --git a/src/de/jaujau/daten/Kartensatz.java b/src/de/jaujau/daten/Kartensatz.java index 6c9c066..9fb0eec 100644 --- a/src/de/jaujau/daten/Kartensatz.java +++ b/src/de/jaujau/daten/Kartensatz.java @@ -10,6 +10,7 @@ import java.util.Random; public class Kartensatz { private Karte kartensatz[]; private int letztekarte; + private boolean debug; /** * Konstruktor für den Kartensatz @@ -19,6 +20,7 @@ public class Kartensatz { */ public Kartensatz() { + debug = true; kartensatz = new Karte[32]; //Standart Skat Kartensatz erstellen @@ -116,7 +118,7 @@ public class Kartensatz { } } 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; diff --git a/src/de/jaujau/daten/Texturenpaket.java b/src/de/jaujau/daten/Texturenpaket.java index 38347f3..4272cb9 100755 --- a/src/de/jaujau/daten/Texturenpaket.java +++ b/src/de/jaujau/daten/Texturenpaket.java @@ -42,6 +42,7 @@ public class Texturenpaket { protected String name; //Protektet weil die abgeleitet Klasse TexturenpaketIntern auf die Werte zugreifen können muss protected int level; private final String pfad; + private boolean debug; /** @@ -49,6 +50,7 @@ public class Texturenpaket { * @param Pfad zu der Zip-Datei des Texturenpaketes */ public Texturenpaket(String Pfad) { + debug = true; name = "Nicht geladen"; level = 0; pfad = Pfad; @@ -60,7 +62,7 @@ public class Texturenpaket { * @return Paket vollständig geladen, true/false */ public boolean ladePacket() { - System.out.println("TEXTURENPAKET: Lade Paket"); + if(debug)System.out.println("TEXTURENPAKET: Lade Paket"); if(testePaket()) { //Paket ist OK @@ -82,12 +84,12 @@ public class Texturenpaket { //Name Auslesen if(Spalte[0].equals("name")) { name = Spalte[1]; - System.out.println("TEXTURENPAKET: Name: " + name); + if(debug)System.out.println("TEXTURENPAKET: Name: " + name); } //Level Auslesen if(Spalte[0].equals("level")) { 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 */ 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 File zipDatei = new File(pfad); if(zipDatei.exists() || zipDatei.canRead()) { @@ -184,7 +186,7 @@ public class Texturenpaket { while(scanner.hasNext()) { //Prüfen ob Konfigurations Datei die Einträge "name" und "level" enthält String Zeile = scanner.nextLine(); - System.out.println("TEXTURENPAKET: Konfigzeile:" + Zeile); + if(debug)System.out.println("TEXTURENPAKET: Konfigzeile:" + Zeile); if(Zeile.contains("name:")) { PaketName = true; } @@ -194,7 +196,7 @@ public class Texturenpaket { } scanner.close(); if(!PaketName || !PaketLevel) { - System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft"); + if(debug)System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft"); paketDatei.close(); return false; } @@ -205,10 +207,10 @@ public class Texturenpaket { InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur); Image bild = ImageIO.read(eingabeStromTextur); 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; } - System.out.println("TEXTURENPAKET: Datei: " + i + ".png OK!"); + if(debug)System.out.println("TEXTURENPAKET: Datei: " + i + ".png OK!"); } paketDatei.close(); @@ -229,7 +231,7 @@ public class Texturenpaket { } //Alles OK - System.out.println("TEXTURENPAKET: Texturen Paket ist OK"); + if(debug)System.out.println("TEXTURENPAKET: Texturen Paket ist OK"); return true; } } diff --git a/src/de/jaujau/daten/Texturenpakete.java b/src/de/jaujau/daten/Texturenpakete.java index d9a6472..cbb13ee 100644 --- a/src/de/jaujau/daten/Texturenpakete.java +++ b/src/de/jaujau/daten/Texturenpakete.java @@ -12,13 +12,16 @@ public class Texturenpakete { private ArrayList TexturenpaketListe; private BufferedImage Texturen[]; private int AktivesPaket; + private boolean debug; public Texturenpakete(){ + debug = true; + TexturenpaketListe = new ArrayList(); //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 setAktivesPaket(0); @@ -80,7 +83,7 @@ public class Texturenpakete { if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) { AktivesPaket = PaketNr; 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 false; @@ -98,7 +101,7 @@ public class Texturenpakete { Texturenpaket NeuesPaket = new Texturenpaket(Pfad); if(NeuesPaket.ladePacket()) { 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; } @@ -118,5 +121,17 @@ public class Texturenpakete { } 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); + } + } } diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 45b1719..7accde5 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -40,7 +40,7 @@ public class Dashboard_GUI extends JPanel{ Spielerverwaltung spielerverwaltung = new Spielerverwaltung(); private final JPanel panel = new JPanel(); private final JPanel panel_1 = new JPanel(); - private JComboBox comboBox = new JComboBox(); + private JComboBox spielername = new JComboBox(); private final JPanel panel_2 = new JPanel(); private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar"); private final JPanel spielfeld = new JPanel(); @@ -69,6 +69,10 @@ public class Dashboard_GUI extends JPanel{ private final JLabel label_final = new JLabel("Spiel beendet"); private final JScrollPane gegnerkartenpane = new JScrollPane(); private final JPanel gegnerkarten = new JPanel(); + private final JButton getname = new JButton("setzen"); + private final JPanel panel_3 = new JPanel(); + private final JLabel level_beschreibung = new JLabel("Aktuelles Level:"); + private final JLabel level_count = new JLabel("0"); //Moving Image @@ -232,10 +236,29 @@ public class Dashboard_GUI extends JPanel{ JLabel lblNewLabel = new JLabel("Spielername:"); panel.add(lblNewLabel); - comboBox.setMinimumSize(new Dimension(60, 22)); - comboBox.setEditable(true); - panel.add(comboBox); + spielername.setMinimumSize(new Dimension(60, 22)); + spielername.setEditable(true); + panel.add(spielername); + panel.add(getname); + getname.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + getspielername(); + } + }); start.add(panel_1, BorderLayout.CENTER); + panel_1.setLayout(new BorderLayout(0, 0)); + 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); start.add(panel_2, BorderLayout.SOUTH); @@ -254,6 +277,7 @@ public class Dashboard_GUI extends JPanel{ public void showgame(Spiel Spiel){ //Neues Spiel wird übergeben aktuellesSpiel = Spiel; + texturenpakete.pruefeLevel(spielerverwaltung.getLevel()); System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); showwunsch(false); @@ -284,9 +308,9 @@ public class Dashboard_GUI extends JPanel{ public void renderStart(){ - comboBox.removeAllItems(); + spielername.removeAllItems(); for(int i = 0; i comboBox; private JLabel vorschaubild; 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; erstelleFenster(); aktualisiereInhalt(); + spielerverwaltung = spieler; } + /** + * Erstelt alle komponenten des Fensters + */ private void erstelleFenster() { //Fenster größen fetslegen setAlwaysOnTop(true); - setBounds(100, 100, 588, 558); + setBounds(100, 100, 391, 361); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); @@ -49,45 +61,50 @@ public class texturenauswaehlen_GUI extends JFrame{ //Vorschaubild vorschaubild = new JLabel(); - vorschaubild.setBounds(117, 111, 167, 214); + vorschaubild.setBounds(32, 79, 167, 214); contentPane.add(vorschaubild); //Text "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.setHorizontalAlignment(SwingConstants.CENTER); contentPane.add(lblNewLabel); //Teste Hinzufügen hinzufuegen = new JButton("Hinzuf\u00FCgen"); - hinzufuegen.setBounds(309, 125, 137, 23); + hinzufuegen.setBounds(209, 82, 137, 23); hinzufuegen.addActionListener(e-> paketHinzufuegeb()); contentPane.add(hinzufuegen); //Teste Speichern speichern = new JButton("Speichern"); - speichern.setBounds(306, 231, 140, 23); + speichern.setBounds(209, 180, 140, 23); speichern.addActionListener(e-> speichern()); contentPane.add(speichern); //Teste Schießen schliessen = new JButton("Schlie\u00DFen"); - schliessen.setBounds(306, 177, 140, 23); + schliessen.setBounds(209, 130, 140, 23); schliessen.addActionListener(e-> schliessen()); contentPane.add(schliessen); //Auswahl Box - comboBox = new JComboBox(); - comboBox.setBounds(117, 69, 351, 25); + comboBox = new JComboBox(); + comboBox.setBounds(10, 37, 351, 25); contentPane.add(comboBox); aktualisiereInhalt(); } + + /** + * Öffent einen auswahl dialog zu Öfnnen einer Datei + * Bei klick auf OK wird das Paket hinzugefügt + */ private void paketHinzufuegeb() { //Quelle: https://www.java-tutorial.org/jfilechooser.html @@ -101,31 +118,48 @@ public class texturenauswaehlen_GUI extends JFrame{ pakete.addPaket(chooser.getSelectedFile().toString()); aktualisiereInhalt(); } - } + /** + * Schießt das Auswahlfenster + */ private void schliessen() { this.setVisible(false); } + /** + * Speichert die Auswahl des akutellen Paketes + */ private void speichern() { +// Austauschen sobalt Spielerverwaltung fertig +// if(spieler.getLevel() >= pakete.getLevel(comboBox.getSelectedIndex())) { +// pakete.setAktivesPaket(comboBox.getSelectedIndex()); +// aktualisiereBild(); +// +// } pakete.setAktivesPaket(comboBox.getSelectedIndex()); aktualisiereBild(); - } + + /** + * Aktualisiert die Inhalte der ComboBox + */ private void aktualisiereInhalt() { comboBox.removeAllItems(); 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()); aktualisiereBild(); } + /** + * Aktualisiert das Vorschaubild + */ private void aktualisiereBild() { vorschaubild.setIcon(new ImageIcon(pakete.getTextur(32).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); } diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java index 01a43f1..5410449 100644 --- a/src/de/jaujau/spiellogik/Anwendung.java +++ b/src/de/jaujau/spiellogik/Anwendung.java @@ -7,6 +7,8 @@ */ package de.jaujau.spiellogik; +import javax.swing.ImageIcon; + import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Texturenpakete; import de.jaujau.gui.GUI; diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 98d033c..cf8848d 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -30,6 +30,7 @@ public class Computer_gegner { private Kartensatz kartensatz; private boolean siebenInHand; private boolean achtInHand; + private boolean debug = false; // // Constructors // @@ -103,7 +104,9 @@ public class Computer_gegner { Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); 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); } } @@ -116,7 +119,9 @@ public class Computer_gegner { Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); 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); } } @@ -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 rueckgabeindex = wertLegen(letztekartewert); - System.out.println("COMPUTER: Fall 1"); + if (debug) { + System.out.println("COMPUTER: Fall 1"); + } } 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); - 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 rueckgabeindex = wertLegen(letztekartewert); - System.out.println("COMPUTER: Fall 3"); + if (debug) { + System.out.println("COMPUTER: Fall 3"); + } } } else { if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer die Wert auf der Hand, versucht er diese zu legen 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 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 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ück rueckgabeindex = -2; - System.out.println("COMPUTER: Fall 7"); + if (debug) { + System.out.println("COMPUTER: Fall 7"); + } } diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 6371778..e19a1f6 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -21,8 +21,9 @@ public class Spielzug { // private Kartensatz kartensatz; + private boolean debug = true; - // + // // Constructors // public Spielzug (Kartensatz karten) { @@ -46,28 +47,40 @@ public class Spielzug { Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT(); Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); - System.out.println("SPIELZUG: Versucht Karte für Funktion: " + kartenindex); - System.out.println("SPIELZUG: Letzte Karte für Funktion: " + letztekartewert + " " + letztekartefarbe); + if (debug) { + 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) { - System.out.println("SPIELZUG: Bedingung 1"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 1"); + } return true; } else if(aussetzen && !(kartenwert == Wert.ACHT)) { - System.out.println("SPIELZUG: Bedingung 2"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 2"); + } return false; } else if (ziehen && kartenwert == Wert.SIEBEN) { - System.out.println("SPIELZUG: Bedingung 3"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 3"); + } return true; } else if (!aussetzen && !ziehen && ((kartenwert == letztekartewert || kartenfarbe == letztekartefarbe) || kartenwert == Wert.BUBE)) { - System.out.println("SPIELZUG: Bedingung 4"); - System.out.println("SPIELZUG: Aussetzen: " + aussetzen + " ziehen:" + ziehen); + if (debug) { + System.out.println("SPIELZUG: Bedingung 4"); + System.out.println("SPIELZUG: Aussetzen: " + aussetzen + " ziehen:" + ziehen); + } return true; } else { - System.out.println("SPIELZUG: Bedingung 5"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 5"); + } return false; } } @@ -90,48 +103,4 @@ public class Spielzug { } 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) - { - } - - } diff --git a/src/img/jaujau.png b/src/img/jaujau.png new file mode 100644 index 0000000..e966ba0 Binary files /dev/null and b/src/img/jaujau.png differ