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..2cfa036 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -32,24 +32,24 @@ import javax.swing.JButton; public class Dashboard_GUI extends JPanel{ private static final long serialVersionUID = -7380187913989942586L; - JPanel panelCont = new JPanel(); - JPanel highscore = new JPanel(); - JPanel game = new JPanel(); - JPanel start = new JPanel(); - CardLayout cl = new CardLayout(); - Spielerverwaltung spielerverwaltung = new Spielerverwaltung(); + private JPanel panelCont = new JPanel(); + private JPanel highscore = new JPanel(); + private JPanel game = new JPanel(); + private JPanel start = new JPanel(); + private CardLayout cl = new CardLayout(); + private 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(); private final JPanel player_hand = new JPanel(); private final JPanel gegner_hand = new JPanel(); - JLabel ziehstapel = new JLabel(""); - JPanel spielerkarten = new JPanel(); - JLabel labelsspieler[] = new JLabel[32]; - JLabel labelsgegner[] = new JLabel[32]; + private JLabel ziehstapel = new JLabel(""); + private JPanel spielerkarten = new JPanel(); + private JLabel labelsspieler[] = new JLabel[32]; + private JLabel labelsgegner[] = new JLabel[32]; private Spiel aktuellesSpiel; private JLabel label_aktuellerSpieler; private Texturenpakete texturenpakete; @@ -57,18 +57,23 @@ public class Dashboard_GUI extends JPanel{ private final JPanel info_panel = new JPanel(); private final JPanel rechts = new JPanel(); private final JPanel mitte = new JPanel(); - JLabel ablagestapel = new JLabel(""); - JButton aussetzen = new JButton("Aussetzen"); - JPanel mitte_unten = new JPanel(); - JPanel mitte_center = new JPanel(); + private JLabel ablagestapel = new JLabel(""); + private JButton aussetzen = new JButton("Aussetzen"); + private JPanel mitte_unten = new JPanel(); + private JPanel mitte_center = new JPanel(); private JPanel mitte_oben = new JPanel(); private JButton btnherz = new JButton("Herz"); 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"); - private final JScrollPane gegnerkartenpane = new JScrollPane(); - private final JPanel gegnerkarten = new JPanel(); + private JScrollPane gegnerkartenpane = new JScrollPane(); + 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 @@ -224,18 +229,48 @@ public class Dashboard_GUI extends JPanel{ mitte.add(mitte_oben, BorderLayout.NORTH); mitte_oben.setLayout(new BorderLayout(0, 0)); + start.setBackground(Color.WHITE); + start.setForeground(Color.WHITE); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); + panel.setBackground(Color.WHITE); panel.setPreferredSize(new Dimension(10, 30)); start.add(panel, BorderLayout.NORTH); 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(); + } + }); + panel_1.setBackground(Color.WHITE); 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); @@ -254,6 +289,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); @@ -283,16 +319,16 @@ public class Dashboard_GUI extends JPanel{ - public void renderStart(){ - comboBox.removeAllItems(); + private void renderStart(){ + 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/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 6ae3695..1554d82 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -29,6 +29,7 @@ public class Spiel { private int kartenZiehen; private Dashboard_GUI dashboard; private boolean spielGewonnen; + private boolean debug = false; public Spiel(Dashboard_GUI dashboard_gui) { audio = new Audio(); @@ -65,41 +66,41 @@ public class Spiel { * @param 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(); int zahl = zufallszahl.nextInt(2); if(zahl == 1) { //Starter durch zufall bestimmen amZug = Spieler.SPIELER; - System.out.println("SPIEL Spieler startet"); + if(debug) System.out.println("SPIEL Spieler startet"); } else { 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 kartensatz.ziehen(Spieler.COMPUTER); kartensatz.ziehen(Spieler.SPIELER); } - System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); - System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); - effekteSetzen(); - if(amZug == Spieler.COMPUTER) { + if(debug) System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); + if(debug) System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); + effekteSetzen(); //effekte für den Start setzen + if(amZug == Spieler.COMPUTER) { //falls der PC startet, findet hier der erste Zug statt 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) { - case -2: + case -2: //aussetzen aussetzen = false; alternieren(dashboard); break; - case -1: + case -1: //Karte ziehen karteZiehen(); break; - default: + default: //Karte legen karteLegen(computerZug); 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); } 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 */ private void alternieren(Dashboard_GUI dashboard) { if(spielGewonnen) return; - if(amZug == Spieler.SPIELER) { + if(amZug == Spieler.SPIELER) { //CPU Zug findet statt amZug = Spieler.COMPUTER; 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); - System.out.println("SPIEL Computerauswahl: " + computerZug); + if(debug) System.out.println("SPIEL Computerauswahl: " + computerZug); switch(computerZug) { case -2: aussetzen = false; @@ -132,12 +133,12 @@ public class Spiel { } } - else { + else { //Spieler Zug findet statt amZug = Spieler.SPIELER; dashboard.aktualisiereGUI(); - System.out.println("\nSPIEL Spieler am Zug"); - if(aussetzen) { - System.out.println("\nSPIEL Aussetzen möglich"); + if(debug) System.out.println("\nSPIEL Spieler am Zug"); + if(aussetzen) { //falls aussetzen aktiv, wird die Möglichkeit über den Button aktiviert + if(debug) System.out.println("\nSPIEL Aussetzen möglich"); dashboard.showaussetzen(true); dashboard.aktualisiereGUI(); } @@ -147,17 +148,17 @@ public class Spiel { /** * 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) { - System.out.println("HERZLICHEN GLÜCKWUNSCH " + spieler + ". DU HAST GEWONNEN"); + if(debug) System.out.println("HERZLICHEN GLÜCKWUNSCH " + spieler + ". DU HAST GEWONNEN"); dashboard.gewonnen(spieler); spielGewonnen = true; } /** - * Bietet die Möglichkeit auszusetzen + * Bietet für den Spieler die Möglichkeit auszusetzen */ public void aussetzen() { 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ür den Teilnehmer gelegt * @param kartenindex */ public void karteLegen(int kartenindex) { if(spielGewonnen) return; - System.out.println("SPIEL Versuche Karte " + kartenindex + " zu legen"); - if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen, kartensatz)) { //gewählte Karte kann gelegt werden - System.out.println("SPIEL pruefeZug positiv"); - System.out.println("SPIEL Lege Karte " + kartenindex); - kartensatz.ablegen(kartenindex); + if(debug) System.out.println("SPIEL Versuche Karte " + kartenindex + " zu legen"); + if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen, kartensatz)) { //gewählte Karte kann gelegt werden - Zug kann stattfinden | sonst nichts + if(debug) System.out.println("SPIEL pruefeZug positiv"); + if(debug) System.out.println("SPIEL Lege Karte " + kartenindex); + kartensatz.ablegen(kartenindex); //karte ablegen if(kartensatz.getHand(amZug).size() == 1) { //Teilnehmer hat nur noch eine Karte audio.spieleJau(); } if(kartensatz.getHand(amZug).isEmpty()) { //Teilnehmer hat gewonnen audio.spieleJauJau(); - gewinn(amZug); + gewinn(amZug); //amZug hat gewonnen return; } - System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); - System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); - effekteSetzen(); - if(kartensatz.getKarte(kartenindex).getWERT() == Wert.ACHT) { //Sonderfall: wiederholtes aussetzen + if(debug) System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); + if(debug) System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); + effekteSetzen(); //effekte neu setzen + if(kartensatz.getKarte(kartenindex).getWERT() == Wert.ACHT) { //Sonderfall: wiederholtes aussetzen Spieler 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); } else { - alternieren(dashboard); + alternieren(dashboard); //weiter ohne Sonderfall } } } @@ -207,31 +208,31 @@ public class Spiel { if(spielGewonnen) return; if(!aussetzen) { 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++) { kartensatz.ziehen(amZug); } kartenZiehen = 0; zwei_ziehen = false; } - else { //Normales ziehen + else { //Normales (1) ziehen kartensatz.ziehen(amZug); - System.out.println("\nSPIEL 1 Karte gezogen"); + if(debug) System.out.println("\nSPIEL 1 Karte gezogen"); } alternieren(dashboard); } - else { //ziehen nicht möglich + else { //ziehen nicht möglich - nichts passiert return; } } /** - * Setzt die Wünscher Farbe + * Setzt die Wunschfarbe für den Spieler * @param 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); alternieren(dashboard); 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() { if(spielGewonnen) return; gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); - if(gelegterWert == Wert.ACHT) { + if(gelegterWert == Wert.ACHT) {//Aussetzen aussetzen = true; } - if(gelegterWert == Wert.SIEBEN) { + if(gelegterWert == Wert.SIEBEN) {//Ziehen zwei_ziehen = true; kartenZiehen += 2; } - if(gelegterWert == Wert.BUBE) { - if(amZug == Spieler.COMPUTER) { + if(gelegterWert == Wert.BUBE) {//Wünscher + if(amZug == Spieler.COMPUTER) {//Wunschfarbe durch PC wird gesetzt kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen(kartensatz)); } - else { + else { //Wunschfarbe durch Spieler setzen 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); } } 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.gif b/src/img/jaujau.gif new file mode 100644 index 0000000..cef5da2 Binary files /dev/null and b/src/img/jaujau.gif differ 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