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