diff --git a/highscore.csv b/highscore.csv new file mode 100755 index 0000000..f917953 --- /dev/null +++ b/highscore.csv @@ -0,0 +1,5 @@ +Sebastian;1 +Elmar;0 +Fabian;0 +Moritz;0 +Alaa Aldin;0 diff --git a/highscore.txt b/highscore.txt deleted file mode 100644 index 510cefa..0000000 --- a/highscore.txt +++ /dev/null @@ -1,15 +0,0 @@ -Seb 245 -Elmo 240 -Moritz 220 -Alaa-Aldin 217 -Fabian 215 -Thomas 1233 -Emil -21331 -Heinz +312 -Gert 234 -Kasper 24 -Jens 234 -Paul 234 -Till 553 -Reiner 462 -Achim 2344 diff --git a/src/JauJau UML.png b/src/JauJau UML.png new file mode 100644 index 0000000..9fe3bd1 Binary files /dev/null and b/src/JauJau UML.png differ diff --git a/src/JauJau UML.ucls b/src/JauJau UML.ucls new file mode 100644 index 0000000..b34b85e --- /dev/null +++ b/src/JauJau UML.ucls @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/de/jaujau/UnitTests/TEST_Audio.java b/src/de/jaujau/UnitTests/TEST_Audio.java index e5ab97d..6a888f7 100644 --- a/src/de/jaujau/UnitTests/TEST_Audio.java +++ b/src/de/jaujau/UnitTests/TEST_Audio.java @@ -5,7 +5,7 @@ package de.jaujau.UnitTests; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import de.jaujau.daten.Audio; +import de.jaujau.audio.Audio; class TEST_Audio { diff --git a/src/de/jaujau/UnitTests/TEST_Kartensatz.java b/src/de/jaujau/UnitTests/TEST_Kartensatz.java index 153da9c..29d76e4 100755 --- a/src/de/jaujau/UnitTests/TEST_Kartensatz.java +++ b/src/de/jaujau/UnitTests/TEST_Kartensatz.java @@ -5,9 +5,9 @@ import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import de.jaujau.daten.Farbe; -import de.jaujau.daten.Kartensatz; -import de.jaujau.daten.Spieler; +import de.jaujau.karten.Farbe; +import de.jaujau.karten.Kartensatz; +import de.jaujau.karten.Spieler; class TEST_Kartensatz { diff --git a/src/de/jaujau/UnitTests/TEST_Spielerverwaltung.java b/src/de/jaujau/UnitTests/TEST_Spielerverwaltung.java new file mode 100755 index 0000000..1679688 --- /dev/null +++ b/src/de/jaujau/UnitTests/TEST_Spielerverwaltung.java @@ -0,0 +1,29 @@ +package de.jaujau.UnitTests; + +//import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import de.jaujau.spieler.Spielerverwaltung; + +class TEST_Spielerverwaltung { + + private Spielerverwaltung verwaltung; + + @BeforeEach + void setUp() throws Exception { + verwaltung = new Spielerverwaltung("highscore.csv"); + } + + @Test + void test() { + verwaltung.lesenDatei(); + verwaltung.setSpieler("Weihnachtsmann"); + System.out.println("Spieler " + verwaltung.getSpieler()); + System.out.println("Level " + verwaltung.getLevel()); + verwaltung.erhoehePunkte(1); + verwaltung.schreibeDatei(); + } + +} diff --git a/src/de/jaujau/UnitTests/TEST_Texturenpaket.java b/src/de/jaujau/UnitTests/TEST_Texturenpaket.java index 9dfc6d7..4470b06 100755 --- a/src/de/jaujau/UnitTests/TEST_Texturenpaket.java +++ b/src/de/jaujau/UnitTests/TEST_Texturenpaket.java @@ -7,7 +7,7 @@ import java.awt.Image; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import de.jaujau.daten.Texturenpaket; +import de.jaujau.texturen.Texturenpaket; class TEST_Texturenpaket { diff --git a/src/de/jaujau/UnitTests/TEST_TexturenpaketIntern.java b/src/de/jaujau/UnitTests/TEST_TexturenpaketIntern.java index 9630ef5..e7b7c75 100755 --- a/src/de/jaujau/UnitTests/TEST_TexturenpaketIntern.java +++ b/src/de/jaujau/UnitTests/TEST_TexturenpaketIntern.java @@ -5,7 +5,8 @@ import static org.junit.jupiter.api.Assertions.*; import java.awt.Image; import org.junit.jupiter.api.Test; -import de.jaujau.daten.TexturenpaketIntern; + +import de.jaujau.texturen.TexturenpaketIntern; class TEST_TexturenpaketIntern { diff --git a/src/de/jaujau/UnitTests/TEST_Texturenpakete.java b/src/de/jaujau/UnitTests/TEST_Texturenpakete.java index 9226772..836b696 100755 --- a/src/de/jaujau/UnitTests/TEST_Texturenpakete.java +++ b/src/de/jaujau/UnitTests/TEST_Texturenpakete.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import de.jaujau.daten.Texturenpakete; +import de.jaujau.texturen.Texturenpakete; class TEST_Texturenpakete { diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/audio/Audio.java similarity index 98% rename from src/de/jaujau/daten/Audio.java rename to src/de/jaujau/audio/Audio.java index aafbf11..a35e6c4 100644 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/audio/Audio.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.audio; import java.io.IOException; diff --git a/src/de/jaujau/daten/Spielerdaten.java b/src/de/jaujau/daten/Spielerdaten.java deleted file mode 100644 index 88dce4b..0000000 --- a/src/de/jaujau/daten/Spielerdaten.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - - * @author Alaa Aldin - - * @version 1.0 - - */ -package de.jaujau.daten; -//import de.jaujau.spiellogik.Spiel; - -/** - * Class Spieler - */ - -public class Spielerdaten { - - int punktestand; // Punktestand des Spielers - String name /* = Spieler.getSpieler() */; // Name des Spielers - - public void punktestandErhoehen(int punkt) { // Methode zum Erhoehen des Punktestandes - punktestand += punkt; - - } - - /** - * Get the value of punktestand - * - * @return the value of punktestand - */ - - public int getPunktestand() { - return punktestand; - } - - /** - * Get the value of name - * - * @return the value of name - */ - public String getName() { - return name; - } -} diff --git a/src/de/jaujau/daten/Spielerverwaltung.java b/src/de/jaujau/daten/Spielerverwaltung.java deleted file mode 100644 index 460d6b1..0000000 --- a/src/de/jaujau/daten/Spielerverwaltung.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - - * @author Alaa Aldin - - * @version 1.0 - - */ -package de.jaujau.daten; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; - -public class Spielerverwaltung { - - private int level; - - private Spielerdaten spieler; - - private String name = "Mark Zuckerberg"; // Testeintrag - - /** - * Set the value of level - * - * @param newlevel the new value of level - */ - public void setLevel(int newlevel) { - level = newlevel; - } - - /** - * Get the value of level - * - * @return the value of level - */ - public int getLevel() { - return level; - } - - /** - * Get the value of name - * - * @return the value of name - */ - public String getName() { - - return name; - } - - /** - * Set the value of spieler arraylist von Spieler - * - * @param newSpieler the new value of spieler - */ - public void setSpieler(Spielerdaten newSpieler) { - spieler = newSpieler; - } - - /** - * Get the value of spieler arraylist von Spieler - * - * @return the value of spieler - */ - public Spielerdaten getSpieler() { - return spieler; - } - - // - // Other methods - // - - /** - */ - public void leseDaten() { - throw new UnsupportedOperationException(); - } - - /** - */ - public void speichernDaten() { - throw new UnsupportedOperationException(); - } - - // Die Highscore-datei wird geoeffnet und die Daten als zweidimensionales Array - // zurueckgegeben - public String[][] gethighscoreTabelle() { - String[][] rowData = new String[15][2]; - BufferedReader reader; - try { - reader = new BufferedReader(new FileReader("highscore.txt")); - String line = reader.readLine(); - char[] lineArray; - String name = ""; - String score = ""; - int zeilennummer = 0; - boolean insArray = false; - while (line != null) { - lineArray = line.toCharArray(); - for (int i = 0; i < lineArray.length; i++) { - - if (lineArray[i] != ' ' && score.length() == 0) { - name += lineArray[i]; - } else if (lineArray[i] == ' ' && name.length() != 0) { - i++; - score += lineArray[i]; - - } else if (score.length() != 0) { - score += lineArray[i]; - insArray = true; - - } - } - - if (insArray) { - rowData[zeilennummer][0] = name; - rowData[zeilennummer][1] = score; - insArray = false; - } - - zeilennummer++; - name = score = ""; - line = reader.readLine(); - } - reader.close(); - - } catch (IOException e) { - e.printStackTrace(); - } - - return rowData; - } -} diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 45b1719..4401733 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -1,6 +1,6 @@ package de.jaujau.gui; -import static de.jaujau.daten.Spieler.COMPUTER; -import static de.jaujau.daten.Spieler.SPIELER; +import static de.jaujau.karten.Spieler.COMPUTER; +import static de.jaujau.karten.Spieler.SPIELER; import java.awt.BorderLayout; import java.awt.CardLayout; @@ -9,11 +9,13 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; -import de.jaujau.daten.Farbe; -import de.jaujau.daten.Spieler; -import de.jaujau.daten.Spielerverwaltung; -import de.jaujau.daten.Texturenpakete; + +import de.jaujau.karten.Farbe; +import de.jaujau.karten.Spieler; +import de.jaujau.spieler.Spielerverwaltung; import de.jaujau.spiellogik.Spiel; +import de.jaujau.texturen.Texturenpakete; + import javax.swing.JLabel; import java.awt.Dimension; import java.awt.Image; @@ -32,24 +34,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; 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,25 +59,31 @@ 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 - public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) { + public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen, Spielerverwaltung speicherung) { setMinimumSize(new Dimension(1000, 600)); texturenpakete = texturen; + spielerverwaltung = speicherung; System.out.println("DASHBOARD_GUI: Aktives: " + texturenpakete.getAktivesPaket()); @@ -83,10 +91,12 @@ public class Dashboard_GUI extends JPanel{ aktuellesSpiel = Spiel; setLayout(new BorderLayout(0, 0)); panelCont.setLayout(cl); + highscore.setBackground(new Color(51, 51, 153)); panelCont.add(highscore, "1"); + game.setBackground(new Color(102, 102, 153)); panelCont.add(game, "2"); game.setLayout(new BorderLayout(0, 0)); - spielfeld.setBackground(new Color(128, 128, 128)); + spielfeld.setBackground(new Color(102, 102, 153)); game.add(spielfeld, BorderLayout.CENTER); spielfeld.setLayout(new BorderLayout(0, 0)); @@ -100,13 +110,15 @@ public class Dashboard_GUI extends JPanel{ spielfeld.add(player_hand, BorderLayout.SOUTH); JScrollPane spielerkartenpane = new JScrollPane(); + spielerkartenpane.setBorder(null); + spielerkartenpane.setBackground(new Color(51, 51, 153)); spielerkartenpane.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); spielerkartenpane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); spielerkartenpane.setPreferredSize(new Dimension(100, 240)); player_hand.add(spielerkartenpane, BorderLayout.CENTER); - spielerkarten.setBackground(Color.GRAY); + spielerkarten.setBackground(new Color(51, 51, 153)); spielerkarten.setAutoscrolls(true); spielerkarten.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); spielerkarten.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); @@ -114,13 +126,16 @@ public class Dashboard_GUI extends JPanel{ gegner_hand.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); gegner_hand.setPreferredSize(new Dimension(10, 150)); - gegner_hand.setBackground(Color.GRAY); + gegner_hand.setBackground(new Color(102, 102, 153)); gegner_hand.setLayout(new BorderLayout(0, 0)); spielfeld.add(gegner_hand, BorderLayout.NORTH); + gegnerkartenpane.setBorder(null); + gegnerkartenpane.setBackground(new Color(102, 102, 153)); gegnerkartenpane.setPreferredSize(new Dimension(100, 140)); gegnerkartenpane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); gegner_hand.add(gegnerkartenpane, BorderLayout.CENTER); + gegnerkarten.setBackground(new Color(51, 51, 153)); gegnerkarten.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); gegnerkarten.setPreferredSize(new Dimension(10, 140)); @@ -130,19 +145,23 @@ public class Dashboard_GUI extends JPanel{ spielfeldmitte.setLayout(new BorderLayout(0, 0)); JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:"); beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); - beschreibung_aktuellerSpieler.setForeground(Color.BLACK); + beschreibung_aktuellerSpieler.setForeground(new Color(255, 255, 255)); + info_panel.setBackground(new Color(51, 51, 153)); info_panel.add(beschreibung_aktuellerSpieler); label_aktuellerSpieler = new JLabel("Auswahlphase"); - label_aktuellerSpieler.setForeground(Color.BLACK); + label_aktuellerSpieler.setForeground(new Color(255, 255, 255)); label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); info_panel.add(label_aktuellerSpieler); spielfeld.add(spielfeldmitte, BorderLayout.CENTER); spielfeldmitte.add(info_panel, BorderLayout.NORTH); + rechts.setBackground(new Color(51, 51, 153)); rechts.setPreferredSize(new Dimension(250, 10)); spielfeldmitte.add(rechts, BorderLayout.EAST); rechts.setLayout(new BorderLayout(0, 0)); + ziehstapel.setBackground(new Color(51, 51, 153)); rechts.add(ziehstapel, BorderLayout.CENTER); + mitte.setBackground(new Color(102, 102, 153)); spielfeldmitte.add(mitte, BorderLayout.CENTER); aussetzen.setVisible(false); @@ -154,6 +173,7 @@ public class Dashboard_GUI extends JPanel{ } }); mitte.setLayout(new BorderLayout(0, 0)); + mitte_unten.setBackground(new Color(51, 51, 153)); mitte_unten.setPreferredSize(new Dimension(150, 50)); mitte_unten.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); btnherz.setVisible(false); @@ -161,7 +181,9 @@ public class Dashboard_GUI extends JPanel{ mitte_unten.add(btnherz); mitte_unten.add(aussetzen); + mitte_center.setBackground(new Color(51, 51, 153)); mitte_center.setLayout(new BorderLayout(0, 0)); + ablagestapel.setBackground(new Color(51, 51, 153)); ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); ablagestapel.setHorizontalTextPosition(SwingConstants.CENTER); ablagestapel.setAlignmentX(Component.CENTER_ALIGNMENT); @@ -175,7 +197,7 @@ public class Dashboard_GUI extends JPanel{ label_final.setVisible(false); label_final.setFont(new Font("Tahoma", Font.PLAIN, 34)); label_final.setHorizontalAlignment(SwingConstants.CENTER); - label_final.setForeground(Color.BLACK); + label_final.setForeground(new Color(255, 255, 255)); mitte_center.add(label_final, BorderLayout.SOUTH); @@ -220,24 +242,64 @@ public class Dashboard_GUI extends JPanel{ }); mitte_unten.add(btnkreuz); + mitte_oben.setBackground(new Color(51, 51, 153)); mitte_oben.setPreferredSize(new Dimension(150, 50)); mitte.add(mitte_oben, BorderLayout.NORTH); mitte_oben.setLayout(new BorderLayout(0, 0)); + start.setBackground(new Color(51, 51, 153)); + start.setForeground(Color.WHITE); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); + panel.setBackground(new Color(51, 51, 153)); panel.setPreferredSize(new Dimension(10, 30)); start.add(panel, BorderLayout.NORTH); JLabel lblNewLabel = new JLabel("Spielername:"); + lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 13)); + lblNewLabel.setForeground(new Color(255, 255, 255)); 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) { + speicherung.setSpieler(getspielername()); + level_count.setText(Integer.toString(speicherung.getLevel())); + } + }); + panel_1.setBackground(new Color(51, 51, 153)); start.add(panel_1, BorderLayout.CENTER); + panel_1.setLayout(new BorderLayout(0, 0)); + panel_3.setBackground(new Color(51, 51, 153)); + panel_3.setPreferredSize(new Dimension(100, 40)); + + panel_1.add(panel_3, BorderLayout.NORTH); + level_beschreibung.setForeground(new Color(255, 255, 255)); + 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.setForeground(new Color(255, 255, 255)); + level_count.setFont(new Font("Tahoma", Font.PLAIN, 22)); + + panel_3.add(level_count); + lblNewLabel_2.setForeground(Color.LIGHT_GRAY); + 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); + panel_2.setBackground(new Color(0, 0, 153)); start.add(panel_2, BorderLayout.SOUTH); + lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 14)); + lblNewLabel_1.setForeground(new Color(255, 255, 255)); panel_2.add(lblNewLabel_1); @@ -254,6 +316,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,22 +346,29 @@ public class Dashboard_GUI extends JPanel{ - public void renderStart(){ - comboBox.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 +62,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 +119,45 @@ 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() { - pakete.setAktivesPaket(comboBox.getSelectedIndex()); - aktualisiereBild(); - + if(spielerverwaltung.getLevel() >= pakete.getLevel(comboBox.getSelectedIndex())) { + 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/daten/Ablageort.java b/src/de/jaujau/karten/Ablageort.java similarity index 73% rename from src/de/jaujau/daten/Ablageort.java rename to src/de/jaujau/karten/Ablageort.java index 79aa24a..4139d3a 100755 --- a/src/de/jaujau/daten/Ablageort.java +++ b/src/de/jaujau/karten/Ablageort.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.karten; public enum Ablageort { SPIELER, COMPUTER, ABLAGESTAPEL, ZIEHSTAPEL diff --git a/src/de/jaujau/daten/Farbe.java b/src/de/jaujau/karten/Farbe.java similarity index 64% rename from src/de/jaujau/daten/Farbe.java rename to src/de/jaujau/karten/Farbe.java index d6f8702..efb4fa4 100755 --- a/src/de/jaujau/daten/Farbe.java +++ b/src/de/jaujau/karten/Farbe.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.karten; public enum Farbe { PIK, KREUZ, HERZ, KARO diff --git a/src/de/jaujau/daten/Karte.java b/src/de/jaujau/karten/Karte.java similarity index 94% rename from src/de/jaujau/daten/Karte.java rename to src/de/jaujau/karten/Karte.java index 72873f5..34092e0 100644 --- a/src/de/jaujau/daten/Karte.java +++ b/src/de/jaujau/karten/Karte.java @@ -1,5 +1,4 @@ -package de.jaujau.daten; - +package de.jaujau.karten; /** * Klasse Karte @@ -20,7 +19,7 @@ public class Karte { public Karte(Farbe f, Wert w) { FARBE = f; WERT = w; - Ablageort = de.jaujau.daten.Ablageort.ZIEHSTAPEL; + Ablageort = de.jaujau.karten.Ablageort.ZIEHSTAPEL; } /** diff --git a/src/de/jaujau/daten/Kartensatz.java b/src/de/jaujau/karten/Kartensatz.java similarity index 98% rename from src/de/jaujau/daten/Kartensatz.java rename to src/de/jaujau/karten/Kartensatz.java index 6c9c066..d645650 100644 --- a/src/de/jaujau/daten/Kartensatz.java +++ b/src/de/jaujau/karten/Kartensatz.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.karten; import java.util.ArrayList; import java.util.Random; @@ -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/Spieler.java b/src/de/jaujau/karten/Spieler.java similarity index 78% rename from src/de/jaujau/daten/Spieler.java rename to src/de/jaujau/karten/Spieler.java index 3e8b4cd..5a5812c 100755 --- a/src/de/jaujau/daten/Spieler.java +++ b/src/de/jaujau/karten/Spieler.java @@ -5,7 +5,7 @@ * @version 1.0 */ -package de.jaujau.daten; +package de.jaujau.karten; public enum Spieler { SPIELER, COMPUTER diff --git a/src/de/jaujau/daten/Wert.java b/src/de/jaujau/karten/Wert.java similarity index 74% rename from src/de/jaujau/daten/Wert.java rename to src/de/jaujau/karten/Wert.java index 41b1a47..d7b489a 100755 --- a/src/de/jaujau/daten/Wert.java +++ b/src/de/jaujau/karten/Wert.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.karten; public enum Wert { SIEBEN, ACHT, NEUN, ZEHN, BUBE, DAME, KOENING, ASS diff --git a/src/de/jaujau/spieler/Spielerdaten.java b/src/de/jaujau/spieler/Spielerdaten.java new file mode 100644 index 0000000..a4c69ac --- /dev/null +++ b/src/de/jaujau/spieler/Spielerdaten.java @@ -0,0 +1,35 @@ +/** + + * @author Alaa Aldin + + * @version 1.0 + + */ +package de.jaujau.spieler; + +/** + * Klasse Spielerdaten + */ +public class Spielerdaten { + + private int punktestand; + private String name; + + public Spielerdaten (String name, int punkte) { + this.name = name; + this.punktestand = punkte; + } + + + public int getPunktestand() { + return punktestand; + } + + public void setPunktestand(int punkte) { + punktestand = punkte; + } + + public String getName() { + return name; + } +} diff --git a/src/de/jaujau/spieler/Spielerverwaltung.java b/src/de/jaujau/spieler/Spielerverwaltung.java new file mode 100755 index 0000000..7ecd428 --- /dev/null +++ b/src/de/jaujau/spieler/Spielerverwaltung.java @@ -0,0 +1,194 @@ +package de.jaujau.spieler; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; + + +/** + * Verwaltung der Spieler und deren Highscore + * @author Alaa Aldin + * + */ +public class Spielerverwaltung { + + + private File datei; + private ArrayList spielerliste = new ArrayList(); + private String aktuellerSpielerName; + private int aktuellerSpielerNr; + private boolean debug; + + + /** + * + * @param Datei + */ + public Spielerverwaltung(String Datei) { + datei = new File(Datei); + spielerliste = new ArrayList(); + aktuellerSpielerName = ""; + aktuellerSpielerNr = -1; + debug = true; + } + + + /** + * Spieler Liste aus Datei einlesen + */ + public void lesenDatei() { + if(datei.exists() || datei.canRead()) { + BufferedReader reader; + try { + reader = new BufferedReader(new FileReader(datei)); + String line = reader.readLine(); + while (line != null) { + String [] newline = line.split(";"); + + //Nur einlesen wenn 2 Objekte vorhanden sind + if(newline.length == 2) { + String name = newline[0]; + int score = Integer.parseInt(newline[1]); + spielerliste.add(new Spielerdaten (name,score)); + } + line = reader.readLine(); + } + reader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if(debug)System.out.println("SPIELERVERWALTUN: " + spielerliste.size() + " Enträge gelesen"); + } + + + + /** + * Spieler liste in datei schreiben + */ + public void schreibeDatei() { + if(spielerliste.size() > 0) { + //Spielerliste ist nicht leer + try { + BufferedWriter writer = new BufferedWriter(new FileWriter(datei)); //Erzeugen eines effizienten Writers für Textdateien + for (int i = 0; i < spielerliste.size(); i++) { + writer.write(spielerliste.get(i).getName() + ";" + Integer.toString(spielerliste.get(i).getPunktestand())); + writer.newLine(); + } + writer.close(); + } + catch(IOException ioe) { + System.err.println(ioe); + } + } + } + + + /** + * + * @param spielername + */ + public void setSpieler(String spielername) { + if(spielerVorhanden(spielername)) { + aktuellerSpielerName = spielername; + aktuellerSpielerNr = getSpielerNr(spielername); + if(debug)System.out.println("SPIELERVERWALTUN: Spieler " + spielername + " gesetzt"); + } + else { + spielerliste.add(new Spielerdaten(spielername,0)); + aktuellerSpielerNr = getSpielerNr(spielername); + if(debug)System.out.println("SPIELERVERWALTUN: Spieler " + spielername + " hinzugefügt"); + } + } + + + + /** + * + * @return + */ + public String getSpieler() { + return aktuellerSpielerName; + } + + + /** + * Highscore Liste als String Array ausgeben + * @return + */ + public String[][] getHighscoreTabelle() { + String [][] highscore = new String[spielerliste.size()][2]; + for(int i = 0; i < spielerliste.size(); i++) { + highscore[i][0] = spielerliste.get(i).getName(); + highscore[i][1] = Integer.toString(spielerliste.get(i).getPunktestand()); + } + + return highscore; + } + + + + /** + * Gibt das Level des Aktuellenspielers zurück + * @return + */ + public int getLevel() { + if(spielerliste.get(aktuellerSpielerNr).getPunktestand() > 0) { + return (int) Math.log(spielerliste.get(aktuellerSpielerNr).getPunktestand()); + } + else { + return 0; + } + } + + + + /** + * + * @param punkte + */ + public void erhoehePunkte(int punkte) { + int punkteNeu = spielerliste.get(aktuellerSpielerNr).getPunktestand() + punkte; + if(punkteNeu >= 0) { + spielerliste.get(aktuellerSpielerNr).setPunktestand(punkteNeu); + if(debug)System.out.println("SPIELERVERWALTUN: Punkte Neu: " + punkteNeu); + } + else { + if(debug)System.out.println("SPIELERVERWALTUN: Punkte Neu: 0"); + } + } + + + /** + * + * @param name + * @return + */ + private boolean spielerVorhanden(String name) { + for(int i = 0; i < spielerliste.size(); i++) { + if(spielerliste.get(i).getName().equals(name)) { + return true; + } + } + return false; + } + + + /** + * + * @param spielername + * @return + */ + private int getSpielerNr(String spielername) { + for(int i = 0; i < spielerliste.size(); i++) { + if(spielerliste.get(i).getName().equals(spielername)) { + return i; + } + } + return -1; + } +} diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java index 5bd8b69..dd32844 100644 --- a/src/de/jaujau/spiellogik/Anwendung.java +++ b/src/de/jaujau/spiellogik/Anwendung.java @@ -7,28 +7,28 @@ */ package de.jaujau.spiellogik; -import de.jaujau.daten.Spielerverwaltung; -import de.jaujau.daten.Texturenpakete; + + import de.jaujau.gui.GUI; -//import de.jaujau.gui.Menue_GUI; -//import de.jaujau.gui.Spiel_GUI; +import de.jaujau.spieler.Spielerverwaltung; +import de.jaujau.texturen.Texturenpakete; + public class Anwendung { private Texturenpakete texturenpakete; private Spielerverwaltung speicherung; private GUI view; - // // Constructors // public Anwendung() { - speicherung = new Spielerverwaltung(); + speicherung = new Spielerverwaltung("highscore.csv"); + speicherung.lesenDatei(); texturenpakete = new Texturenpakete(); view = new GUI(texturenpakete, speicherung); - - + }; /** */ diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 98d033c..df72261 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -5,15 +5,15 @@ package de.jaujau.spiellogik; import java.util.ArrayList; import java.util.Random; -import de.jaujau.daten.Farbe; -import de.jaujau.daten.Kartensatz; -import de.jaujau.daten.Spieler; -import de.jaujau.daten.Wert; +import de.jaujau.karten.Farbe; +import de.jaujau.karten.Kartensatz; +import de.jaujau.karten.Spieler; +import de.jaujau.karten.Wert; /** * Diese Klasse steuert den Computer Gegner - * @author Moritz Köppe + * @author Moritz K�ppe */ public class Computer_gegner { @@ -30,6 +30,7 @@ public class Computer_gegner { private Kartensatz kartensatz; private boolean siebenInHand; private boolean achtInHand; + private boolean debug = false; // // Constructors // @@ -48,9 +49,9 @@ public class Computer_gegner { * Funktion sucht aus, welche Karte der Computer Gegner legt, nach verschiedenen Parametern * Zuerst sollen Karten gelegt werden, welche den aktuell geltenden Effekt kontern, falls einer liegt * Danach werden Effektkarten der aktuellen Farbe gelegt - * Als nächstes Werden Karten der aktuellen Farbe gelegt + * Als n�chstes Werden Karten der aktuellen Farbe gelegt * Dann Karten die den aktuellenw Wert besitzen - * Zuletzt Buben um sich eine Farbe zu wünschen + * Zuletzt Buben um sich eine Farbe zu w�nschen * @param boolean, muss Spieler ziehen? * @param boolean, muss Spieler aussetzen? * @return Kartenindex der Karte die gelegt werden soll @@ -62,7 +63,7 @@ public class Computer_gegner { hand = kartensatz.getHand(Spieler.COMPUTER); //Speichert die Karten, die der Computer aktuell auf der Hand hat farbeInHand = false; //Speichert, ob die aktuell liegende Farbe in der Hand des Computers vorhanden ist wertInHand = false; //Speichert, ob der aktuell liegende Wert in der Hand des Computers vorhanden ist - int rueckgabeindex = -1; //Speichert den Kartenindex, der Karte, die gelegt werden soll. Standard -1 für ziehen, falls keine passende Karte auf Hand + int rueckgabeindex = -1; //Speichert den Kartenindex, der Karte, die gelegt werden soll. Standard -1 f�r ziehen, falls keine passende Karte auf Hand bubeInHand = false; //Speichert, ob ein Bube in der Hand vorhanden ist gegnerhand = kartensatz.getHand(Spieler.SPIELER); @@ -74,19 +75,19 @@ public class Computer_gegner { Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); //Holt sich die Farbe der aktuellen Handkarte Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); //Holt sich den Wert der aktuellen Handkarte - if(farbeHK == letztekartefarbe && wertHK != Wert.BUBE) { //Prüft ob Farbe der aktuellen Handkarte zur offen liegenden Karte passt + if(farbeHK == letztekartefarbe && wertHK != Wert.BUBE) { //Pr�ft ob Farbe der aktuellen Handkarte zur offen liegenden Karte passt farbeInHand = true; } - if(wertHK == letztekartewert) { //Prüft ob Wert der aktuellen Handkarte zur liegenden Karte passt + if(wertHK == letztekartewert) { //Pr�ft ob Wert der aktuellen Handkarte zur liegenden Karte passt wertInHand = true; } - if(wertHK == Wert.BUBE) { //Prüft, ob ein Bube (Wünscher) auf der Hand vorhanden ist + if(wertHK == Wert.BUBE) { //Pr�ft, ob ein Bube (W�nscher) auf der Hand vorhanden ist bubeInHand = true; } - //Sollte der Computer genau eine 8 und eine weitere Karte der selben Farbe (keine Buben) haben, wird er versuchen diese 8 präferiert zu legen + //Sollte der Computer genau eine 8 und eine weitere Karte der selben Farbe (keine Buben) haben, wird er versuchen diese 8 pr�feriert zu legen if(((wertHK == Wert.ACHT && farbeHK == letztekartefarbe) || (wertHK == Wert.ACHT && letztekartewert == Wert.ACHT)) && farbeZahl(farbeHK) == 2) { achtInHand = true; } @@ -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 + 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 + 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"); + } } @@ -169,10 +188,10 @@ public class Computer_gegner { } /** - * Funktion sucht Karte passend zur gesuchten Farbe aus der Hand und gibt diese zurück - * Passen mehrere Karten, gibt sie die letzte passende zurück + * Funktion sucht Karte passend zur gesuchten Farbe aus der Hand und gibt diese zur�ck + * Passen mehrere Karten, gibt sie die letzte passende zur�ck * @param Farbe, Farbe zu der eine Karte gesucht wird - * @return integer Index der zurückgegebenen Karte + * @return integer Index der zur�ckgegebenen Karte */ private int farbeLegen(Farbe gesuchteFarbe) { int ind = -1; @@ -188,10 +207,10 @@ public class Computer_gegner { } /** - * Funktion sucht Karte passend zum gesuchten Wert aus der Hand und gibt diese zurück - * Passen mehrere Karten, gibt sie die letzte passende zurück + * Funktion sucht Karte passend zum gesuchten Wert aus der Hand und gibt diese zur�ck + * Passen mehrere Karten, gibt sie die letzte passende zur�ck * @param Wert, Wert zu dem eine passende Karte gesucht wird - * @return integer Index der zurückgegebenen Karte + * @return integer Index der zur�ckgegebenen Karte */ private int wertLegen(Wert gesuchterWert) { int ind = -1; @@ -206,10 +225,10 @@ public class Computer_gegner { } /** - * Funktion wählt für den Computer aus, welche Farbe er sich bei einem Wünscher aussucht + * Funktion w�hlt f�r den Computer aus, welche Farbe er sich bei einem W�nscher aussucht * Dazu wird geschaut, von welcher Farbe er am meisten Karten auf der Hand hat * @param Kartensatz aktueller Stand des Kartensatzes - * @return Farbe gewählte Farbe + * @return Farbe gew�hlte Farbe */ public Farbe farbeAussuchen(Kartensatz karten) { kartensatz = karten; @@ -238,9 +257,9 @@ public class Computer_gegner { } /** - * Funktion, die eine zufällige Zahl zwischen 0 und einer andere Zahl r-1 ausgibt + * Funktion, die eine zuf�llige Zahl zwischen 0 und einer andere Zahl r-1 ausgibt * @param int r - * @return int zufällige Zahl + * @return int zuf�llige Zahl */ private int zufall(int r){ Random zufall = new Random(); @@ -251,8 +270,8 @@ public class Computer_gegner { } /** - * Funktion zählt für die jeweilige Farbe, wie viele Karten der Farbe auf der Hand des Computer sind - * @param farbe, für welche gezählt werden soll + * Funktion z�hlt f�r die jeweilige Farbe, wie viele Karten der Farbe auf der Hand des Computer sind + * @param farbe, f�r welche gez�hlt werden soll * @return integer Wie viele Karten der Farbe auf der Hand sind */ private int farbeZahl(Farbe farbe) { @@ -270,7 +289,7 @@ public class Computer_gegner { } /** * Dies ist nur eine Testfunktion - * @return Integer, gibt immer 1 zurück + * @return Integer, gibt immer 1 zur�ck */ public int cpuTest() { return 1; diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 6ae3695..d6d543b 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -2,22 +2,23 @@ package de.jaujau.spiellogik; import java.util.Random; -import de.jaujau.daten.Audio; -import de.jaujau.daten.Farbe; -import de.jaujau.daten.Kartensatz; -import de.jaujau.daten.Spieler; -import de.jaujau.daten.Wert; +import de.jaujau.audio.Audio; import de.jaujau.gui.Dashboard_GUI; +import de.jaujau.karten.Farbe; +import de.jaujau.karten.Kartensatz; +import de.jaujau.karten.Spieler; +import de.jaujau.karten.Wert; +import de.jaujau.spieler.Spielerverwaltung; /** * Diese Klasse organisiert den Spielablauf - * Diese Klasse beinhaltet Methoden um Spielzüge auszuführen, um Kontrollen durchzuführen und um zwischen Spieler und Computer zu wechseln + * Diese Klasse beinhaltet Methoden um Spielz�ge auszuf�hren, um Kontrollen durchzuf�hren und um zwischen Spieler und Computer zu wechseln * @author Fabian Keller */ public class Spiel { - + private Spieler amZug; private Wert gelegterWert; private Audio audio; @@ -29,14 +30,17 @@ public class Spiel { private int kartenZiehen; private Dashboard_GUI dashboard; private boolean spielGewonnen; + private Spielerverwaltung spielerverwaltung; + private boolean debug = false; - public Spiel(Dashboard_GUI dashboard_gui) { + public Spiel(Dashboard_GUI dashboard_gui, Spielerverwaltung spielerverwaltung) { audio = new Audio(); kartensatz = new Kartensatz(); computerGegner = new Computer_gegner(kartensatz); spielzug = new Spielzug(kartensatz); dashboard = dashboard_gui; spielGewonnen = false; + this.spielerverwaltung = spielerverwaltung; } public boolean getAussetzen() { @@ -61,45 +65,45 @@ public class Spiel { /** * Initialisiert ein Spiel - * Handelt den Start aus und führt, falls nötig, den ersten Spielzug aus + * Handelt den Start aus und f�hrt, falls n�tig, den ersten Spielzug aus * @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 +111,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 +136,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(); } @@ -146,18 +150,19 @@ public class Spiel { /** - * Wird aufgerufen wenn das Spiel entschieden wurde, führt zum Spielende - * @param spieler Spieler, welcher gewonnen hat + * Wird aufgerufen wenn das Spiel entschieden wurde, f�hrt zum Spielende + * @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); + if(spieler == Spieler.SPIELER) spielerverwaltung.erhoehePunkte(1); spielGewonnen = true; } /** - * Bietet die Möglichkeit auszusetzen + * Bietet f�r den Spieler die M�glichkeit auszusetzen */ public void aussetzen() { if(spielGewonnen) return; @@ -166,72 +171,72 @@ 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 } } } /** - * falls eine oder mehrere Karten gezogen werden können, wird dies für den Teilnehmer ausgeführt + * falls eine oder mehrere Karten gezogen werden k�nnen, wird dies f�r den Teilnehmer ausgef�hrt */ public void karteZiehen(){ 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 +244,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..068b205 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -1,18 +1,16 @@ package de.jaujau.spiellogik; -import de.jaujau.daten.Kartensatz; -import de.jaujau.daten.Spielerdaten; -import de.jaujau.daten.Wert; +import de.jaujau.karten.Farbe; +import de.jaujau.karten.Kartensatz; +import de.jaujau.karten.Spieler; +import de.jaujau.karten.Wert; import java.util.ArrayList; -import de.jaujau.daten.Farbe; -import de.jaujau.daten.Spieler; - /** - * Diese Klasse verwaltet Funktionen, die den Spielzug prüfen - * @author Moritz Köppe + * Diese Klasse verwaltet Funktionen, die den Spielzug pr�fen + * @author Moritz K�ppe */ public class Spielzug { @@ -21,8 +19,9 @@ public class Spielzug { // private Kartensatz kartensatz; + private boolean debug = true; - // + // // Constructors // public Spielzug (Kartensatz karten) { @@ -31,7 +30,7 @@ public class Spielzug { /** * Funktion untersucht, ob die Karte die der Spieler zu legen versucht auch gelegt werden kann - * Sollte der Spieler gerade aussetzen müssen, kann nur eine 8 gelegt werden + * Sollte der Spieler gerade aussetzen m�ssen, kann nur eine 8 gelegt werden * Muss der Spieler zwei Karten ziehen, kann nur eine 7 gelegt werden * Gilt nichts von beidem muss die Karte zur vorhergelegten passen * @param kartenindex Index der Karte die gelegt werden soll @@ -46,34 +45,46 @@ 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; } } /** - * Prüft, ob der Spieler eine Karte legen kann, indem jede Karte in der Hand des Spielers mit der Funktion pruefeZug geprüft wird + * Pr�ft, ob der Spieler eine Karte legen kann, indem jede Karte in der Hand des Spielers mit der Funktion pruefeZug gepr�ft wird * @param spieler, Spieler am Zug * @param boolean, muss Spieler ziehen? * @param boolean, muss Spieler aussetzen? @@ -90,48 +101,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/de/jaujau/daten/Texturenpaket.java b/src/de/jaujau/texturen/Texturenpaket.java similarity index 87% rename from src/de/jaujau/daten/Texturenpaket.java rename to src/de/jaujau/texturen/Texturenpaket.java index 38347f3..482c35e 100755 --- a/src/de/jaujau/daten/Texturenpaket.java +++ b/src/de/jaujau/texturen/Texturenpaket.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.texturen; import java.awt.Image; import java.awt.image.BufferedImage; @@ -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/TexturenpaketIntern.java b/src/de/jaujau/texturen/TexturenpaketIntern.java similarity index 98% rename from src/de/jaujau/daten/TexturenpaketIntern.java rename to src/de/jaujau/texturen/TexturenpaketIntern.java index 4af9410..7ca92a6 100755 --- a/src/de/jaujau/daten/TexturenpaketIntern.java +++ b/src/de/jaujau/texturen/TexturenpaketIntern.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.texturen; import java.awt.image.BufferedImage; import java.io.IOException; diff --git a/src/de/jaujau/daten/Texturenpakete.java b/src/de/jaujau/texturen/Texturenpakete.java similarity index 80% rename from src/de/jaujau/daten/Texturenpakete.java rename to src/de/jaujau/texturen/Texturenpakete.java index d9a6472..d8b915f 100644 --- a/src/de/jaujau/daten/Texturenpakete.java +++ b/src/de/jaujau/texturen/Texturenpakete.java @@ -1,4 +1,4 @@ -package de.jaujau.daten; +package de.jaujau.texturen; import java.awt.image.BufferedImage; import java.util.ArrayList; @@ -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/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