diff --git a/.classpath b/.classpath
index 9b07da8..afbfe1a 100644
--- a/.classpath
+++ b/.classpath
@@ -2,5 +2,6 @@
+
diff --git a/.project b/.project
index a71a1b2..d95d958 100644
--- a/.project
+++ b/.project
@@ -14,4 +14,15 @@
org.eclipse.jdt.core.javanature
+
+
+ 1606897925456
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/src/de/jaujau/UnitTests/TEST_Kartensatz.java b/src/de/jaujau/UnitTests/TEST_Kartensatz.java
new file mode 100755
index 0000000..6649284
--- /dev/null
+++ b/src/de/jaujau/UnitTests/TEST_Kartensatz.java
@@ -0,0 +1,98 @@
+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.daten.Farbe;
+import de.jaujau.daten.Kartensatz;
+import de.jaujau.daten.Spieler;
+
+class TEST_Kartensatz {
+
+ private Kartensatz satz;
+
+ @BeforeEach
+ public void Setup() {
+ satz = new Kartensatz();
+ assertNotNull(satz);
+ }
+
+ @Test
+ void ziehenSpieler() {
+ for(int i = 0; i < 32; i++) {
+ //Spieler hat zu angang keine Karten auf der Hand
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==i);
+
+ //Karte Ziehen
+ assertTrue(satz.ziehen(Spieler.SPIELER));
+
+ //Spieler hat eine Karte auf der Hand
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==i+1);
+ }
+ }
+
+ @Test
+ void ziehenComputer() {
+ for(int i = 0; i < 32; i++) {
+ //Computer hat zu angang keine Karten auf der Hand
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==i);
+
+ //Karte Ziehen
+ assertTrue(satz.ziehen(Spieler.SPIELER));
+
+ //Computer hat eine Karte auf der Hand
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==i+1);
+ }
+ }
+
+ @Test
+ void WunschfarbeSetzen() {
+ satz.SetWunschfarbe(Farbe.HERZ);
+ assertTrue(satz.getKarte(satz.getletzteKarte()).getFARBE()==Farbe.HERZ);
+
+ satz.SetWunschfarbe(Farbe.KARO);
+ assertTrue(satz.getKarte(satz.getletzteKarte()).getFARBE()==Farbe.KARO);
+
+ satz.SetWunschfarbe(Farbe.KREUZ);
+ assertTrue(satz.getKarte(satz.getletzteKarte()).getFARBE()==Farbe.KREUZ);
+
+ satz.SetWunschfarbe(Farbe.PIK);
+ assertTrue(satz.getKarte(satz.getletzteKarte()).getFARBE()==Farbe.PIK);
+ }
+
+ @Test
+ void legeKarte() {
+
+ //Kein Spieler hat ein Karte
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==0);
+ assertTrue(satz.getHand(Spieler.COMPUTER).size()==0);
+
+ //Computer und Spieler Zihen jeweils eine Karte
+ assertTrue(satz.ziehen(Spieler.SPIELER));
+ assertTrue(satz.ziehen(Spieler.COMPUTER));
+
+ //Jetzt muss jeder Spieler ein KArte auf der Hand haben
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==1);
+ assertTrue(satz.getHand(Spieler.COMPUTER).size()==1);
+
+ //KartenIndex der Spieler auslesen
+ int karteSpieler = satz.getHand(Spieler.SPIELER).get(0);
+ int karteComputer = satz.getHand(Spieler.COMPUTER).get(0);
+
+ //Die Karten drüfen nicht gleich sein
+ assertTrue(karteSpieler != karteComputer);
+
+ //Spieler legt Karte auf Ablagestapel
+ satz.ablegen(karteSpieler);
+ assertTrue(karteSpieler == satz.getletzteKarte());
+ assertTrue(satz.getHand(Spieler.SPIELER).size()==0);
+
+ //Computer legt Karte auf Ablagestapel
+ satz.ablegen(karteComputer);
+ assertTrue(karteComputer == satz.getletzteKarte());
+ assertTrue(satz.getHand(Spieler.COMPUTER).size()==0);
+
+ }
+}
diff --git a/src/de/jaujau/UnitTests/TEST_Texturenpaket.java b/src/de/jaujau/UnitTests/TEST_Texturenpaket.java
new file mode 100755
index 0000000..0d52b10
--- /dev/null
+++ b/src/de/jaujau/UnitTests/TEST_Texturenpaket.java
@@ -0,0 +1,49 @@
+package de.jaujau.UnitTests;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import java.awt.Image;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import de.jaujau.daten.Texturenpaket;
+
+class TEST_Texturenpaket {
+
+ private Texturenpaket paket;
+
+ @BeforeEach
+ void setUp() throws Exception {
+
+
+ }
+
+ @Test
+ void FehlerFreiesPaketLaden() {
+ paket = new Texturenpaket("/home/sebastian/testpaket.zip");
+ assertTrue(paket.ladePacket());
+ System.out.println("Name des Texturen Paketes: " + paket.getName());
+ System.out.println("Level des Texturen Paketes: " + paket.getLevel());
+ }
+
+ @Test
+ void FehlerHaftesPaketLaden() {
+ paket = new Texturenpaket("/home/sebastian/testpaket_fehler.zip");
+ assertFalse(paket.ladePacket());
+ System.out.println("Name des Fehlerhaften Texturen Paketes: " + paket.getName());
+ System.out.println("Level des Fehlerhaften Texturen Paketes: " + paket.getLevel());
+ }
+
+
+ @Test
+ void TexturenAusgeben() {
+ paket = new Texturenpaket("/home/sebastian/testpaket.zip");
+ assertTrue(paket.ladePacket());
+ Image Bilder[] = paket.getTexturen();
+ for(int i = 0; i < 32; i++) {
+ assertTrue(Bilder[i] != null);
+ }
+ }
+
+}
diff --git a/src/de/jaujau/UnitTests/TEST_Texturenpakete.java b/src/de/jaujau/UnitTests/TEST_Texturenpakete.java
new file mode 100755
index 0000000..d0a9a8d
--- /dev/null
+++ b/src/de/jaujau/UnitTests/TEST_Texturenpakete.java
@@ -0,0 +1,33 @@
+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.daten.Texturenpakete;
+
+class TEST_Texturenpakete {
+
+ private Texturenpakete pakete;
+
+ @BeforeEach
+ void setUp() throws Exception {
+ pakete = new Texturenpakete();
+ }
+
+ @Test
+ void test() {
+ assertTrue(pakete.getAnzahlPakete()==0);
+ assertTrue(pakete.addPaket("/home/sebastian/testpaket.zip"));
+ assertTrue(pakete.getAnzahlPakete()==1);
+ assertTrue(pakete.setAktivesPaket(0));
+ assertTrue(pakete.getAktivesPaket()==0);
+ System.out.println(pakete.getName(0));
+ System.out.println(pakete.getName(0));
+ for(int i = 0; i < 32; i++) {
+ assertTrue(pakete.getTextur(i)!=null);
+ }
+ }
+
+}
diff --git a/src/de/jaujau/daten/Ablageort.java b/src/de/jaujau/daten/Ablageort.java
new file mode 100755
index 0000000..79aa24a
--- /dev/null
+++ b/src/de/jaujau/daten/Ablageort.java
@@ -0,0 +1,5 @@
+package de.jaujau.daten;
+
+public enum Ablageort {
+ SPIELER, COMPUTER, ABLAGESTAPEL, ZIEHSTAPEL
+}
diff --git a/src/de/jaujau/daten/Farbe.java b/src/de/jaujau/daten/Farbe.java
new file mode 100755
index 0000000..d6f8702
--- /dev/null
+++ b/src/de/jaujau/daten/Farbe.java
@@ -0,0 +1,5 @@
+package de.jaujau.daten;
+
+public enum Farbe {
+ PIK, KREUZ, HERZ, KARO
+}
diff --git a/src/de/jaujau/daten/Karte.java b/src/de/jaujau/daten/Karte.java
index 5498278..72873f5 100644
--- a/src/de/jaujau/daten/Karte.java
+++ b/src/de/jaujau/daten/Karte.java
@@ -1,14 +1,68 @@
package de.jaujau.daten;
-import java.util.*;
-
/**
- * Class Karte
+ * Klasse Karte
+ * Verwaltet die Daten einer Spielkarte
+ * @author Sebastian Kacza
*/
public class Karte {
+ private final Farbe FARBE;
+ private final Wert WERT;
+ private Ablageort Ablageort;
+
+ /**
+ * Konstruktor für die Klasse Karte
+ * Ablageort dird Standartmäßig auf Zielstapel gestezt
+ * @param f Farbe der Karte
+ * @param w Wert der Karte
+ */
+ public Karte(Farbe f, Wert w) {
+ FARBE = f;
+ WERT = w;
+ Ablageort = de.jaujau.daten.Ablageort.ZIEHSTAPEL;
+ }
+
+ /**
+ * Gibt die Farbe der Karte zurück
+ * @return Farbe der Karte
+ */
+ public Farbe getFARBE() {
+ return FARBE;
+ }
+
+ /**
+ * Gibt den Wert einer Karte zurück
+ * @return Wert der Karte
+ */
+ public Wert getWERT() {
+ return WERT;
+ }
+
+ /**
+ * Gibt den Ablageort der Karte zurück
+ * @return Ablageort der Karte
+ */
+ public Ablageort getAblageort() {
+ return Ablageort;
+ }
+
+ /**
+ * Ändert den Ablageoert der Karte
+ * @param ablageort Neuer Ablageort der Karte
+ */
+ public void setAblageort(Ablageort ablageort) {
+ Ablageort = ablageort;
+ }
-
-
-
+ /**
+ * Gibt die Eigenschaften der Karte aus Text aus
+ * !!!Diese Methode ist nur für Debug-Ausgaben notwendig und kann Später entfernt werden!!!
+ * @return String mit den Karten Eigenschaften
+ */
+ @Override
+ public String toString() {
+ return "Karte [FARBE=" + FARBE + ", WERT=" + WERT + ", Ablageort=" + Ablageort + "]";
+ }
+
}
diff --git a/src/de/jaujau/daten/Kartensatz.java b/src/de/jaujau/daten/Kartensatz.java
index 7bc5284..e69945c 100644
--- a/src/de/jaujau/daten/Kartensatz.java
+++ b/src/de/jaujau/daten/Kartensatz.java
@@ -1,14 +1,222 @@
package de.jaujau.daten;
-import java.util.*;
-
+import java.util.ArrayList;
+import java.util.Random;
/**
- * Class Kartensatz
+ * Diese Klasse Verwaltet den Kartensatz
+ * @author Sebastian Kacza
*/
public class Kartensatz {
+ public Karte kartensatz[];
+ int letztekarte;
+
+ /**
+ * Konstruktor für den Kartensatz
+ * Erstellt einen Neuen Kartensatz mit 32 Karten in einem Array
+ * Die Karten haben dabei die Reihenfolge eines Standart Skat Blattes
+ */
+ public Kartensatz() {
+ letztekarte = 0;
+ kartensatz = new Karte[32];
+
+ //Standart Skat Kartensatz erstellen
+ kartensatz[0] = new Karte(Farbe.KARO, Wert.SIEBEN);
+ kartensatz[1] = new Karte(Farbe.KARO, Wert.ACHT);
+ kartensatz[2] = new Karte(Farbe.KARO, Wert.NEUN);
+ kartensatz[3] = new Karte(Farbe.KARO, Wert.ZEHN);
+ kartensatz[4] = new Karte(Farbe.KARO, Wert.BUBE);
+ kartensatz[5] = new Karte(Farbe.KARO, Wert.DAME);
+ kartensatz[6] = new Karte(Farbe.KARO, Wert.KOENING);
+ kartensatz[7] = new Karte(Farbe.KARO, Wert.ASS);
+
+ kartensatz[8] = new Karte(Farbe.HERZ, Wert.SIEBEN);
+ kartensatz[9] = new Karte(Farbe.HERZ, Wert.ACHT);
+ kartensatz[10] = new Karte(Farbe.HERZ, Wert.NEUN);
+ kartensatz[11] = new Karte(Farbe.HERZ, Wert.ZEHN);
+ kartensatz[12] = new Karte(Farbe.HERZ, Wert.BUBE);
+ kartensatz[13] = new Karte(Farbe.HERZ, Wert.DAME);
+ kartensatz[14] = new Karte(Farbe.HERZ, Wert.KOENING);
+ kartensatz[15] = new Karte(Farbe.HERZ, Wert.ASS);
+
+ kartensatz[16] = new Karte(Farbe.PIK, Wert.SIEBEN);
+ kartensatz[17] = new Karte(Farbe.PIK, Wert.ACHT);
+ kartensatz[18] = new Karte(Farbe.PIK, Wert.NEUN);
+ kartensatz[19] = new Karte(Farbe.PIK, Wert.ZEHN);
+ kartensatz[20] = new Karte(Farbe.PIK, Wert.BUBE);
+ kartensatz[21] = new Karte(Farbe.PIK, Wert.DAME);
+ kartensatz[22] = new Karte(Farbe.PIK, Wert.KOENING);
+ kartensatz[23] = new Karte(Farbe.PIK, Wert.ASS);
+
+ kartensatz[24] = new Karte(Farbe.KREUZ, Wert.SIEBEN);
+ kartensatz[25] = new Karte(Farbe.KREUZ, Wert.ACHT);
+ kartensatz[26] = new Karte(Farbe.KREUZ, Wert.NEUN);
+ kartensatz[27] = new Karte(Farbe.KREUZ, Wert.ZEHN);
+ kartensatz[28] = new Karte(Farbe.KREUZ, Wert.BUBE);
+ kartensatz[29] = new Karte(Farbe.KREUZ, Wert.DAME);
+ kartensatz[30] = new Karte(Farbe.KREUZ, Wert.KOENING);
+ kartensatz[31] = new Karte(Farbe.KREUZ, Wert.ASS);
+
+ }
+
+
+ /**
+ * Zieht eine Zufällige karte aus dem Ziehstapel für einen bestimmten Spieler und gibt den Karten dem Spieler auf die Hand
+ * Wenn keine Karten mehr auf dem Ziehstapel sind werden alle Karten vom Ablagestabel auf den Ziehstapel verschoben
+ * @param spieler Spieler der die Karte auf die Hand bekommen soll
+ */
+ public boolean ziehen(Spieler spieler) {
+ //System.out.println("Start Ziehen");
+ //Ziehstapel Prüfen
+ int ZiehstapelAnzahl = getZiehstapelAnzahl(); //ZiehstapelAnzahl könte durch direckten Medoden aufruf ersetzt werden????
+ if(ZiehstapelAnzahl < 1) { //ZiehstapelAnzahl könte durch direckten Medoden aufruf ersetzt werden????
+ //Alle Karten vom Ablagestapel ausßer letze auf den Ziehstapel verschieben
+ for(int i = 0; i < 32; i++) {
+ if((kartensatz[i].getAblageort() == Ablageort.ABLAGESTAPEL) && (i != letztekarte)) {
+ kartensatz[i].setAblageort(Ablageort.ZIEHSTAPEL);
+ }
+ }
+ }
+
+ ZiehstapelAnzahl = getZiehstapelAnzahl(); //ZiehstapelAnzahl könte durch direckten Medoden aufruf ersetzt werden????
+ //System.out.println("ZiehStapel Anzahl " + ZiehstapelAnzahl);
+ if(ZiehstapelAnzahl > 0) { //ZiehstapelAnzahl könte durch direckten Medoden aufruf ersetzt werden????
+ //Ziekarte bestimmen und
+ //Zienummer auswählen
+ //System.out.println("Nummer wählen");
+ Random random = new Random();
+ int auswahl = random.nextInt(ZiehstapelAnzahl); //ZiehstapelAnzahl könte durch direckten Medoden aufruf ersetzt werden????
+ //System.out.println("Karte Ziehen " + auswahl);
+
+ //Wenn Karten auf dem Ziehspabel verfügbar sind
+ int ZiehstapelIndex = 0;
+ for(int i = 0; i < 32; i++) {
+ //System.out.println("ZielStapelIndex " + ZiehstapelIndex);
+ if(kartensatz[i].getAblageort() == Ablageort.ZIEHSTAPEL) {
+ //System.out.println("Suche " + auswahl + " ZieIndex " + ZiehstapelIndex + " KartenIndex " + i);
+ if(auswahl == ZiehstapelIndex) {
+ //System.out.println("Ziehe Karte " + i + " " + kartensatz[i].toString());
+ //Karte im Ziehstaple ist die die Ausgewählt wurde
+ if(spieler == Spieler.SPIELER) {
+ kartensatz[i].setAblageort(Ablageort.SPIELER);
+ }
+ if(spieler == Spieler.COMPUTER) {
+ kartensatz[i].setAblageort(Ablageort.COMPUTER);
+ }
+ return true;
+ }
+ ZiehstapelIndex++;
+ }
+
+ }
+ }
+ else {
+ System.out.println("Keine Karten zum ziehen verfügbar!");
+ return false;
+ }
+ return false;
+ }
+
+
+ /**
+ * legt die Karte mit der KartenID x auf den Ablagestapel
+ * Speicher die KartenID der zuletzgelegt Karte in "letztekarte"
+ * @param kartenid ID der Karte die Abgeget werden Soll
+ */
+ public void ablegen(int kartenID) {
+ if((kartenID >= 0) && (kartenID < 32)){
+ kartensatz[kartenID].setAblageort(Ablageort.ABLAGESTAPEL);
+ letztekarte = kartenID;
+ }
+ }
+
+
+ /**
+ * gibt die ID der Kartezurück die als letztes auf dem Ablagestabel gelegt wurde
+ * @return ID der zuletzt gelegten Karte
+ */
+ public int getletzteKarte() {
+ return letztekarte;
+ }
+
+
+ /**
+ * Gibt die Karten Indexe einer Spieler Hand zuück
+ * Wenn keine Karten auf der Hand liegen wird eine Leere ArrayList zurückgegeben
+ * @param spieler Spieler
+ * @return ArrayList von Integer welche die KatrenIndexe enthält,
+ */
+ public ArrayList getHand(Spieler spieler) {
+ ArrayList hand = new ArrayList();
+ for(int i = 0; i < 32; i++) {
+ //Für Spieler
+ if(spieler == Spieler.SPIELER) {
+ if(kartensatz[i].getAblageort() == Ablageort.SPIELER) {
+ hand.add(i);
+ }
+ }
+ //Für Computer
+ if(spieler == Spieler.COMPUTER) {
+ if(kartensatz[i].getAblageort() == Ablageort.COMPUTER) {
+ hand.add(i);
+ }
+ }
+ }
+ return hand;
+ }
+
+
+ /**
+ * Gibt eine Karte aus dem Kartensatz zurück
+ * @param kartenid ID Der Karte (0 - 31)
+ * @return Karte auf dem Kartensatz mit der ID x
+ */
+ public Karte getKarte(int kartenID) {
+ if((kartenID >= 0) && (kartenID < 32)){
+ return kartensatz[kartenID];
+ }
+ else {
+ return null;
+ }
+
+ }
+
+
+ /**
+ * Legt die Farbe fest die als nächstes auf den Ablagestapel gelegt werden muss
+ * Dafür wird der "Wünscher" (Bube) der jeweiligen Farbe als letze Karte auf dem Ablegestabel eingetragen
+ * @param farbe Farbe die sich gewünscht wird
+ */
+ public void SetWunschfarbe(Farbe farbe) {
+ if(farbe == Farbe.KARO) {
+ letztekarte = 4; //Karo Bube
+ }
+ else if (farbe == Farbe.HERZ) {
+ letztekarte = 12; //Kerz Bube
+ }
+ else if (farbe == Farbe.PIK) {
+ letztekarte = 20; //Pik Bube
+ }
+ else if (farbe == Farbe.KREUZ) {
+ letztekarte = 28; //Kreuz Bube
+ }
+ }
+ /**
+ * Dies Funktion Prüft ob sich auf dem Ziehstapel noch mindestes eine Karte Befindet
+ * Wird nur Klassenintern Verwendet
+ * @return true wenn keine Karten Vorhanden, false wenn kein Karte vorhanden
+ */
+ private int getZiehstapelAnzahl() {
+ int anzahl = 0;
+ for(Karte karte: kartensatz) {
+ if(karte.getAblageort() == Ablageort.ZIEHSTAPEL) {
+ anzahl++;
+ }
+ }
+ return anzahl;
+ }
}
diff --git a/src/de/jaujau/daten/Spieler.java b/src/de/jaujau/daten/Spieler.java
new file mode 100755
index 0000000..faaea4d
--- /dev/null
+++ b/src/de/jaujau/daten/Spieler.java
@@ -0,0 +1,5 @@
+package de.jaujau.daten;
+
+public enum Spieler {
+ SPIELER, COMPUTER
+}
diff --git a/src/de/jaujau/daten/Spielerdaten.java b/src/de/jaujau/daten/Spielerdaten.java
new file mode 100644
index 0000000..cd205fb
--- /dev/null
+++ b/src/de/jaujau/daten/Spielerdaten.java
@@ -0,0 +1,25 @@
+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 ;
+
+ }
+
+ public int getPunktestand() {
+ return punktestand;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/src/de/jaujau/daten/Spielerverwaltung.java b/src/de/jaujau/daten/Spielerverwaltung.java
index 8c7a4d8..0de3003 100644
--- a/src/de/jaujau/daten/Spielerverwaltung.java
+++ b/src/de/jaujau/daten/Spielerverwaltung.java
@@ -1,60 +1,59 @@
package de.jaujau.daten;
-import java.util.*;
-/**
- * Class Spielerverwaltung
- */
+
public class Spielerverwaltung {
- //
- // Fields
- //
+ private int level;
- private unsigned int level;
+ private Spielerdaten spieler;
+
+ private String name = "Mark Zuckerberg"; //Testeintrag
/**
* arraylist von Spieler
*/
- private Spieler spieler;
//
// Constructors
- //
- public Spielerverwaltung () { };
-
+ //
//
// Methods
- //
-
-
//
// Accessor methods
//
-
/**
* Set the value of level
* @param newVar the new value of level
*/
- public void setLevel (unsigned int newVar) {
- level = newVar;
+ public void setLevel (int newlevel) {
+ level = newlevel;
}
-
/**
* Get the value of level
* @return the value of level
*/
- public unsigned int getLevel () {
+ public int getLevel () {
return level;
}
+
+
+ /**
+ * Get the value of level
+ * @return the value of level
+ */
+ public String getName () {
+
+ return name;
+ }
/**
* Set the value of spieler
* arraylist von Spieler
* @param newVar the new value of spieler
*/
- public void setSpieler (Spieler newVar) {
- spieler = newVar;
+ public void setSpieler (Spielerdaten newSpieler) {
+ spieler = newSpieler;
}
/**
@@ -62,7 +61,7 @@ public class Spielerverwaltung {
* arraylist von Spieler
* @return the value of spieler
*/
- public Spieler getSpieler () {
+ public Spielerdaten getSpieler () {
return spieler;
}
@@ -74,6 +73,7 @@ public class Spielerverwaltung {
*/
public void leseDaten()
{
+ throw new UnsupportedOperationException();
}
@@ -81,7 +81,10 @@ public class Spielerverwaltung {
*/
public void speichernDaten()
{
+ throw new UnsupportedOperationException();
}
-
+ public Spielerverwaltung() {
+ //Implementieren
+ };
}
diff --git a/src/de/jaujau/daten/Texturenpaket.java b/src/de/jaujau/daten/Texturenpaket.java
new file mode 100755
index 0000000..4d4a89a
--- /dev/null
+++ b/src/de/jaujau/daten/Texturenpaket.java
@@ -0,0 +1,207 @@
+package de.jaujau.daten;
+
+import java.awt.Image;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Scanner;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
+import javax.imageio.ImageIO;
+
+
+/**
+ * Verwaltet ein Texturenpackt
+ * @author Sebastian Kacza
+ *
+ */
+public class Texturenpaket {
+
+ private String name;
+ private int level;
+ private final String pfad;
+
+
+ /**
+ * Erstellt ein neues Texturenpackt
+ * @param Pfad zu der Zip-Datei des Texturenpacketes
+ */
+ public Texturenpaket(String Pfad) {
+ name = "Nicht geladen";
+ level = 0;
+ pfad = Pfad;
+ }
+
+
+ /**
+ * Läd die Packetinformationen und Testet das Packet auf Vollständigkeit
+ * @return Paket vollständig laden, true/false
+ */
+ public boolean ladePacket() {
+ System.out.println("TEXTURENPAKET: Lade Paket");
+ if(testePaket()) {
+ //Paket ist OK
+
+ //Paket Informationen Laden
+
+ try {
+ File zipDatei = new File(pfad);
+ ZipFile paketDatei = new ZipFile(zipDatei);
+ ZipEntry zipInhaltPaketTXT = paketDatei.getEntry("paket.txt");
+ InputStream eingabeStromTXT = paketDatei.getInputStream(zipInhaltPaketTXT);
+ Scanner scanner = new Scanner(eingabeStromTXT);
+ while(scanner.hasNext()) {
+ String Zeile = scanner.next();
+ String Spalte[] = Zeile.split(":");
+ //System.out.println(Spalte.length);
+ if(Spalte.length==2) {
+ System.out.println("TEXTURENPAKET: " + Spalte[1]);
+ //Name Auslesen
+ if(Spalte[0].equals("name")) {
+ name = Spalte[1];
+ }
+ //Level Auslesen
+ if(Spalte[0].equals("level")) {
+ level = Integer.parseInt(Spalte[1]);
+ }
+
+ }
+ }
+ scanner.close();
+ paketDatei.close();
+
+ } catch (ZipException e) {
+ e.printStackTrace();
+ return false;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+ else {
+ return false;
+ }
+ return true;
+ }
+
+
+ /**
+ * Gibt alle Bilddatein für ein Texturen Paket zurück
+ * @return Image der Texturen des Peketes als Image Array
+ */
+ public Image[] getTexturen() {
+ if(testePaket()) {
+
+ try {
+ File zipDatei = new File(pfad);
+ ZipFile paketDatei = new ZipFile(zipDatei);
+ Image Bilder[] = new Image[32];
+
+ for(int i = 0; i < 32; i++) {
+ ZipEntry zipInhaltTextur = paketDatei.getEntry(i+".png");
+ InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur);
+ Bilder[i] = ImageIO.read(eingabeStromTextur);
+ }
+ return Bilder;
+
+ } catch (ZipException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+ return null;
+ }
+
+
+ /**
+ * Gibt den Namen des Texturenpacket zurück
+ * @return Name des Texturenpacketes
+ */
+ public String getName() {
+ return name;
+ }
+
+
+ /**
+ * Gibt den Level Wert zurück der mindestens Benötigt wird um das Packet zu benutzten
+ * @return Mindest Level
+ */
+ public int getLevel() {
+ return level;
+ }
+
+
+ /**
+ * Testet das Texturenpaket auf vollständigkeit
+ * @return Paket vollständig, true/false
+ */
+ private boolean testePaket() {
+ System.out.println("TEXTURENPAKET: Teste Paket:");
+ //Testen ob Zip-Datei vorhanden und lesabar ist
+ File zipDatei = new File(pfad);
+ if(zipDatei.exists() || zipDatei.canRead()) {
+
+ try {
+ //Zip Datei öffnen
+ ZipFile paketDatei = new ZipFile(zipDatei);
+
+ //Paket Konfigurations Datei Prüfen
+ ZipEntry zipInhaltPaketTXT = paketDatei.getEntry("paket.txt");
+ InputStream eingabeStromTXT = paketDatei.getInputStream(zipInhaltPaketTXT);
+ Scanner scanner = new Scanner(eingabeStromTXT);
+ boolean PaketName = false;
+ boolean PaketLevel = false;
+ while(scanner.hasNext()) {
+ //Prüfen ob Konfigurations Datei die Einträge "name" und "level" enthält
+ String Zeile = scanner.next();
+ System.out.println("TEXTURENPAKET: " + Zeile);
+ if(Zeile.contains("name:")) {
+ PaketName = true;
+ }
+ if(Zeile.contains("level:")) {
+ PaketLevel = true;
+ }
+ }
+ scanner.close();
+ if(!PaketName || !PaketLevel) {
+ System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft");
+ return false;
+ }
+
+ //Texturen Prüfen
+ for(int i = 0; i < 32; i++) {
+ ZipEntry zipInhaltTextur = paketDatei.getEntry(i+".png");
+ InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur);
+ Image bild = ImageIO.read(eingabeStromTextur);
+ if(bild == null) {
+ System.out.println("TEXTURENPAKET: Datei: " + i + ".png nicht gefunden");
+ return false;
+ }
+ }
+
+ paketDatei.close();
+
+ } catch (ZipException e) {
+ //Zip Datei nicht leesbar
+ e.printStackTrace();
+ return false;
+ } catch (IOException e) {
+ //Zip Datei nicht lesbar
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+ else {
+ return false;
+ }
+
+ //Alles OK
+ System.out.println("TEXTURENPAKET: Texturen Paket ist OK");
+ return true;
+ }
+}
diff --git a/src/de/jaujau/daten/Texturenpakete.java b/src/de/jaujau/daten/Texturenpakete.java
index b53a81d..e87bab1 100644
--- a/src/de/jaujau/daten/Texturenpakete.java
+++ b/src/de/jaujau/daten/Texturenpakete.java
@@ -1,14 +1,113 @@
package de.jaujau.daten;
-import java.util.*;
-
+import java.awt.Image;
+import java.util.ArrayList;
/**
- * Class Texturenpakete
+ * Diese Klasse Verwaltet die Texturenpackete des Spiels
+ * @author Sebastian Kacza
*/
public class Texturenpakete {
+ private ArrayList TexturenpaketListe;
+ private Image Texturen[];
+ private int AktivesPaket;
+
+
+ public Texturenpakete(){
+ TexturenpaketListe = new ArrayList();
+ AktivesPaket = 0;
+ }
+
+
+ /**
+ * Gibt die Anzahl der Vorhanden Texturenpakete aus
+ * @return Anzahl Texturenpakte
+ */
+ public int getAnzahlPakete() {
+ return TexturenpaketListe.size();
+ }
+
+ /**
+ * Gibt das min Level für ein bestimtes Paket zurück
+ * @param PaketNummer
+ * @return min Level
+ */
+ public int getLevel(int PaketNr) {
+ if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
+ return TexturenpaketListe.get(PaketNr).getLevel();
+ }
+ return 0;
+ }
+
+
+ /**
+ * Gibt den Namen eines Bestiment Paketes zurück
+ * @param PaketNummer
+ * @return Name des Paketes
+ */
+ public String getName(int PaketNr) {
+ if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
+ return TexturenpaketListe.get(PaketNr).getName();
+ }
+ return "";
+ }
+
+
+ /**
+ * Gibt die Nummer des AktivenPakes aus
+ * @return Nummer des Aktiven Paketes
+ */
+ public int getAktivesPaket() {
+ return AktivesPaket;
+ }
+
+
+ /**
+ * Setzt das aktive Paket
+ * @param PaketNr des Paketes
+ * @return Setzen erfolgreich true/false
+ */
+ public boolean setAktivesPaket(int PaketNr) {
+ if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
+ AktivesPaket = PaketNr;
+
+ //Texturen Laden
+ Texturen = TexturenpaketListe.get(PaketNr).getTexturen();
+ return true;
+ }
+ return false;
+ }
+
+
+ /**
+ * Fügt ein Neues Testuren Paket hinzu
+ * Das Paket wird vor dem einfügen auf Vollständfigkeit geprüft
+ * @param Pfad
+ * @return
+ */
+ public boolean addPaket(String Pfad) {
+ Texturenpaket NeuesPaket = new Texturenpaket(Pfad);
+ if(NeuesPaket.ladePacket()) {
+ TexturenpaketListe.add(NeuesPaket);
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Gibt eine Textur des aktuellen Paketes als Image zurück
+ * @param KartenNr der Textur
+ * @return Textur als Image
+ */
+ public Image getTextur(int KartenNr) {
+ if((KartenNr >= 0) && (KartenNr < 32)) {
+ return Texturen[KartenNr];
+ }
+ return null;
+ }
}
diff --git a/src/de/jaujau/daten/Wert.java b/src/de/jaujau/daten/Wert.java
new file mode 100755
index 0000000..41b1a47
--- /dev/null
+++ b/src/de/jaujau/daten/Wert.java
@@ -0,0 +1,5 @@
+package de.jaujau.daten;
+
+public enum Wert {
+ SIEBEN, ACHT, NEUN, ZEHN, BUBE, DAME, KOENING, ASS
+}
diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java
index 8fdf1eb..9c95836 100644
--- a/src/de/jaujau/gui/GUI.java
+++ b/src/de/jaujau/gui/GUI.java
@@ -1,22 +1,33 @@
package de.jaujau.gui;
-import java.util.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JFrame;
+
/**
* Class GUI
*/
-public class GUI {
+public class GUI extends JFrame implements ActionListener{
//
// Fields
//
-
+ private static final long serialVersionUID = 1L;
+
//
// Constructors
//
- public GUI () { };
+ public GUI () { }
+
+@Override
+public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+
+}
//
// Methods
diff --git a/src/de/jaujau/gui/JauJauGUI.java b/src/de/jaujau/gui/JauJauGUI.java
deleted file mode 100644
index 9cdc21b..0000000
--- a/src/de/jaujau/gui/JauJauGUI.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package de.jaujau.gui;
-
-import java.awt.EventQueue;
-import java.awt.Image;
-
-import javax.swing.JFrame;
-import javax.swing.JButton;
-import java.awt.BorderLayout;
-import javax.swing.JPanel;
-import javax.imageio.ImageIO;
-import javax.swing.BoxLayout;
-import javax.swing.Icon;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import javax.swing.JLabel;
-import javax.swing.ImageIcon;
-import javax.swing.SwingConstants;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.awt.Component;
-import java.awt.Font;
-
-public class JauJauGUI {
-
- private JFrame frame;
-
- /**
- * Launch the application.
- */
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- JauJauGUI window = new JauJauGUI();
- window.frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
-
- /**
- * Create the application.
- */
- public JauJauGUI() {
- initialize();
- }
-
- /**
- * Initialize the contents of the frame.
- */
-
-
- //Test GUI für JauJau
-
-
- private void initialize() {
- frame = new JFrame();
- frame.setBounds(100, 100, 783, 762);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.getContentPane().setLayout(new BorderLayout(0, 0));
-
- JPanel panel_top = new JPanel();
- panel_top.setPreferredSize(new Dimension(200, 100));
- panel_top.setBackground(new Color(0, 0, 128));
- frame.getContentPane().add(panel_top, BorderLayout.NORTH);
- panel_top.setLayout(new BorderLayout(0, 0));
-
- JLabel lblNewLabel_1 = new JLabel("JauJau");
- lblNewLabel_1.setForeground(Color.WHITE);
- lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
- lblNewLabel_1.setInheritsPopupMenu(false);
- lblNewLabel_1.setIgnoreRepaint(false);
- lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 40));
- lblNewLabel_1.setVerticalAlignment(SwingConstants.CENTER);
- panel_top.add(lblNewLabel_1, BorderLayout.CENTER);
-
- JPanel panel_side = new JPanel();
- panel_side.setBackground(new Color(100, 149, 237));
- panel_side.setPreferredSize(new Dimension(200, 400));
- frame.getContentPane().add(panel_side, BorderLayout.WEST);
- panel_side.setLayout(new BorderLayout(0, 0));
-
- JPanel panel_buttons = new JPanel();
- panel_buttons.setBackground(new Color(0, 0, 128));
- panel_buttons.setPreferredSize(new Dimension(50, 200));
- panel_side.add(panel_buttons, BorderLayout.WEST);
- panel_buttons.setLayout(new BorderLayout(0, 0));
-
- JPanel panel = new JPanel();
- panel.setBackground(new Color(0, 0, 153));
- panel.setPreferredSize(new Dimension(50, 50));
- panel_buttons.add(panel, BorderLayout.NORTH);
- panel.setLayout(new BorderLayout(0, 0));
-
-
- JLabel lblNewLabel = new JLabel("");
- lblNewLabel.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- panel_side.setVisible(false);
- }
- });
- lblNewLabel.setPreferredSize(new Dimension(50, 50));
- lblNewLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
- lblNewLabel.setHorizontalTextPosition(SwingConstants.CENTER);
- lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
- ImageIcon imageIcon = new ImageIcon(new ImageIcon("C:\\Users\\Elmar\\Pictures\\exit.png").getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));
- lblNewLabel.setIcon(imageIcon);
- panel.add(lblNewLabel, BorderLayout.CENTER);
-
- JPanel panel_main = new JPanel();
- panel_main.setPreferredSize(new Dimension(600, 600));
- frame.getContentPane().add(panel_main, BorderLayout.CENTER);
- }
-
-}
diff --git a/src/de/jaujau/gui/Menue_GUI.java b/src/de/jaujau/gui/Menue_GUI.java
new file mode 100644
index 0000000..bc40257
--- /dev/null
+++ b/src/de/jaujau/gui/Menue_GUI.java
@@ -0,0 +1,240 @@
+package de.jaujau.gui;
+
+import java.awt.EventQueue;
+import java.awt.Image;
+
+import javax.swing.JFrame;
+import javax.swing.JButton;
+import java.awt.BorderLayout;
+import javax.swing.JPanel;
+import javax.imageio.ImageIO;
+import javax.swing.BoxLayout;
+import javax.swing.Icon;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import javax.swing.JLabel;
+import javax.swing.ImageIcon;
+import javax.swing.SwingConstants;
+import javax.swing.SwingUtilities;
+
+import de.jaujau.daten.Spielerverwaltung;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.awt.Component;
+import java.awt.Font;
+
+public class Menue_GUI extends GUI implements ActionListener {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private Spielerverwaltung spielerverwaltung;
+ private JPanel contentPane;
+ private boolean shown = true;
+
+
+
+ /**
+ * Create the application.
+ * @param speicherung
+ */
+ public Menue_GUI(Spielerverwaltung speicherung) {
+ this.spielerverwaltung = speicherung;
+ speicherung.getSpieler();
+ System.out.println("Menü-GUI aufgerufen");
+ initialize(this.spielerverwaltung);
+
+ }
+ /**
+ * Initialize the contents of the frame.
+ */
+
+ //Test GUI für JauJau
+
+ private void initialize(Spielerverwaltung speicherung) {
+ this.spielerverwaltung = speicherung;
+ setBounds(100, 100, 963, 762);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ getContentPane().setLayout(new BorderLayout(0, 0));
+ setVisible(true);
+
+ JPanel panel_top = new JPanel();
+ panel_top.setPreferredSize(new Dimension(200, 100));
+ panel_top.setBackground(new Color(0, 0, 128));
+ this.getContentPane().add(panel_top, BorderLayout.NORTH);
+ panel_top.setLayout(new BorderLayout(0, 0));
+
+ JLabel lblNewLabel_1 = new JLabel("JauJau");
+ lblNewLabel_1.setForeground(Color.WHITE);
+ lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
+ lblNewLabel_1.setInheritsPopupMenu(false);
+ lblNewLabel_1.setIgnoreRepaint(false);
+ lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 40));
+ lblNewLabel_1.setVerticalAlignment(SwingConstants.CENTER);
+ panel_top.add(lblNewLabel_1, BorderLayout.CENTER);
+
+ JPanel panel_side = new JPanel();
+ panel_side.setBackground(new Color(0, 51, 153));
+ panel_side.setPreferredSize(new Dimension(270, 400));
+ this.getContentPane().add(panel_side, BorderLayout.WEST);
+ panel_side.setLayout(new BorderLayout(0, 0));
+
+ JPanel panel_buttons = new JPanel();
+ panel_buttons.setBackground(new Color(0, 0, 128));
+ panel_buttons.setPreferredSize(new Dimension(50, 200));
+ panel_side.add(panel_buttons, BorderLayout.WEST);
+ panel_buttons.setLayout(null);
+
+ JPanel panel = new JPanel();
+ panel.setBounds(0, 0, 50, 50);
+ panel.setBackground(new Color(0, 0, 153));
+ panel.setPreferredSize(new Dimension(50, 50));
+ panel_buttons.add(panel);
+ panel.setLayout(new BorderLayout(0, 0));
+
+
+ JLabel minimize = new JLabel("");
+ minimize.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ if(shown == true) {
+ panel_side.setPreferredSize(new Dimension(50, panel_side.getHeight()));
+ System.out.println("Update GUI 50");
+ panel_side.revalidate();
+ panel_side.repaint();
+ shown = false;
+ }else{
+ panel_side.setPreferredSize(new Dimension(270, panel_side.getHeight()));
+ System.out.println("Update GUI 270");
+ panel_side.revalidate();
+ panel_side.repaint();
+ shown = true;
+ }
+ }
+ });
+ minimize.setPreferredSize(new Dimension(50, 50));
+ minimize.setAlignmentX(Component.CENTER_ALIGNMENT);
+ minimize.setHorizontalTextPosition(SwingConstants.CENTER);
+ minimize.setHorizontalAlignment(SwingConstants.CENTER);
+ ImageIcon imageIcon = new ImageIcon(new ImageIcon("C:\\Users\\Elmar\\Pictures\\exit.png").getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));
+ minimize.setIcon(imageIcon);
+ panel.add(minimize, BorderLayout.CENTER);
+
+ JPanel buttons = new JPanel();
+ buttons.setBackground(new Color(51, 51, 153));
+ panel_side.add(buttons, BorderLayout.CENTER);
+ buttons.setLayout(new BorderLayout(0, 0));
+
+ JPanel panel_4 = new JPanel();
+ panel_4.setBackground(new Color(0, 51, 153));
+ buttons.add(panel_4, BorderLayout.CENTER);
+ panel_4.setLayout(null);
+
+ JLabel start = new JLabel("Spiel starten");
+ start.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ //Spiel starten Spiel_GUI und schließe Menue_GUI (wechsel) und Spiellogikaufrufen
+ System.out.println("Start Game");
+ }
+ });
+ start.setBackground(Color.WHITE);
+ start.setForeground(Color.WHITE);
+ start.setFont(new Font("Segoe UI", Font.PLAIN, 26));
+ start.setHorizontalAlignment(SwingConstants.CENTER);
+ start.setAlignmentX(Component.CENTER_ALIGNMENT);
+ start.setBounds(0, 0, 220, 31);
+ panel_4.add(start);
+
+ JLabel score = new JLabel("Highscore");
+ score.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ //Rechtes Panel ändern und Highscore aus jaujaudaten abrufen.
+ System.out.println("Highscore");
+ }
+ });
+ score.setBackground(Color.WHITE);
+ score.setForeground(Color.WHITE);
+ score.setFont(new Font("Segoe UI", Font.PLAIN, 26));
+ score.setHorizontalAlignment(SwingConstants.CENTER);
+ score.setAlignmentX(Component.CENTER_ALIGNMENT);
+ score.setBounds(0, 42, 220, 31);
+ panel_4.add(score);
+
+ JLabel settings = new JLabel("Einstellungen");
+ settings.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ //Rechtes Panel ändern und Einstellungen aufrufen
+ System.out.println("Highscore");
+ }
+ });
+ settings.setBackground(Color.WHITE);
+ settings.setForeground(Color.WHITE);
+ settings.setFont(new Font("Segoe UI", Font.PLAIN, 26));
+ settings.setHorizontalAlignment(SwingConstants.CENTER);
+ settings.setAlignmentX(Component.CENTER_ALIGNMENT);
+ settings.setBounds(0, 84, 220, 31);
+ panel_4.add(settings);
+
+ JLabel help = new JLabel("Hilfe");
+ help.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ //Starte Hilfe GUI Menue_GUI bleibt geöffnet
+ System.out.println("Hilfe");
+ }
+ });
+ help.setBackground(Color.WHITE);
+ help.setForeground(Color.WHITE);
+ help.setFont(new Font("Segoe UI", Font.PLAIN, 26));
+ help.setHorizontalAlignment(SwingConstants.CENTER);
+ help.setAlignmentX(Component.CENTER_ALIGNMENT);
+ help.setBounds(0, 126, 220, 31);
+ panel_4.add(help);
+
+ JPanel panel_main = new JPanel();
+ panel_main.setPreferredSize(new Dimension(600, 600));
+ this.getContentPane().add(panel_main, BorderLayout.CENTER);
+ panel_main.setLayout(new BoxLayout(panel_main, BoxLayout.X_AXIS));
+
+ JPanel panel_1 = new JPanel();
+ panel_1.setBackground(new Color(102, 153, 255));
+ panel_main.add(panel_1);
+ panel_1.setLayout(new BorderLayout(0, 0));
+
+ JPanel panel_2 = new JPanel();
+ panel_2.setBackground(new Color(51, 153, 204));
+ panel_1.add(panel_2, BorderLayout.CENTER);
+ panel_2.setLayout(new BorderLayout(0, 0));
+
+ JLabel lblNewLabel_2 = new JLabel("Name: ");
+ lblNewLabel_2.setForeground(Color.WHITE);
+ lblNewLabel_2.setFont(new Font("Segoe UI", Font.PLAIN, 26));
+ lblNewLabel_2.setBackground(new Color(51, 153, 204));
+ panel_2.add(lblNewLabel_2, BorderLayout.NORTH);
+ lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
+ lblNewLabel_2.setVerticalAlignment(SwingConstants.TOP);
+ lblNewLabel_2.setText("Name: " + speicherung.getName());
+
+ JPanel panel_3 = new JPanel();
+ panel_3.setBackground(new Color(51, 153, 204));
+ panel_2.add(panel_3, BorderLayout.CENTER);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/src/de/jaujau/gui/Menü_GUI.java b/src/de/jaujau/gui/Menü_GUI.java
deleted file mode 100644
index 5cd164b..0000000
--- a/src/de/jaujau/gui/Menü_GUI.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package de.jaujau.gui;
-
-import java.util.*;
-
-
-/**
- * Class Menü_GUI
- */
-public class Menü_GUI {
-
- //
- // Fields
- //
-
-
- //
- // Constructors
- //
- public Menü_GUI () { };
-
- //
- // Methods
- //
-
-
- //
- // Accessor methods
- //
-
- //
- // Other methods
- //
-
-}
diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java
index d586ef4..a2fe9c7 100644
--- a/src/de/jaujau/spiellogik/Anwendung.java
+++ b/src/de/jaujau/spiellogik/Anwendung.java
@@ -1,93 +1,93 @@
package de.jaujau.spiellogik;
-import java.util.*;
-
import de.jaujau.daten.Spielerverwaltung;
import de.jaujau.daten.Texturenpakete;
import de.jaujau.gui.GUI;
+import de.jaujau.gui.Menue_GUI;
-/**
- * Class Anwendung
- */
public class Anwendung {
- //
- // Fields
- //
-
private Spiel aktuellesSpiel;
private Texturenpakete texturenpakete;
private Spielerverwaltung speicherung;
- private GUI gui;
-
+ private static Menue_GUI gui;
+
//
// Constructors
//
- public Anwendung () { };
-
+ public Anwendung() {
+
+ speicherung = new Spielerverwaltung();
+ gui = new Menue_GUI(speicherung);
+
+ };
//
// Methods
- //
-
//
// Accessor methods
//
-
/**
* Set the value of aktuellesSpiel
+ *
* @param newVar the new value of aktuellesSpiel
*/
- public void setAktuellesSpiel (Spiel newVar) {
- aktuellesSpiel = newVar;
+ public void setAktuellesSpiel(Spiel newSpiel) {
+ aktuellesSpiel = newSpiel;
}
/**
* Get the value of aktuellesSpiel
+ *
* @return the value of aktuellesSpiel
*/
- public Spiel getAktuellesSpiel () {
+ public Spiel getAktuellesSpiel() {
return aktuellesSpiel;
}
/**
* Set the value of texturenpakete
+ *
* @param newVar the new value of texturenpakete
*/
- public void setTexturenpakete (Texturenpakete newVar) {
- texturenpakete = newVar;
+ public void setTexturenpakete(Texturenpakete newTexture) {
+ texturenpakete = newTexture;
}
/**
* Get the value of texturenpakete
+ *
* @return the value of texturenpakete
*/
- public Texturenpakete getTexturenpakete () {
+ public Texturenpakete getTexturenpakete() {
return texturenpakete;
}
/**
* Set the value of speicherung
+ *
* @param newVar the new value of speicherung
*/
- public void setSpeicherung (Spielerverwaltung newVar) {
- speicherung = newVar;
+ public void setSpeicherung(Spielerverwaltung newVer) {
+ speicherung = newVer;
}
/**
* Get the value of speicherung
+ *
* @return the value of speicherung
*/
- public Spielerverwaltung getSpeicherung () {
+ public Spielerverwaltung getSpeicherung() {
return speicherung;
}
/**
* Set the value of gui
+ *
* @param newVar the new value of gui
*/
- public void setGui (GUI newVar) {
+ public static void setGui(Menue_GUI newVar) {
gui = newVar;
}
@@ -95,19 +95,38 @@ public class Anwendung {
* Get the value of gui
* @return the value of gui
*/
- public GUI getGui () {
+ public static GUI getGui () {
return gui;
}
+
+ //
+ // Other methods
+ //
+ public static void openGui() { // GUI oeffnen!
+ Anwendung jaujau = new Anwendung();
+ jaujau.gui.setVisible(true);
+ }
+ /**
+ */
+ public static void main(String[] args){
+ openGui();
//
// Other methods
//
- /**
- */
- public void main()
+ /**
+ * Launch the application.
+ */
+
+ /*public static void main(String[] args)
{
+ System.out.println("Programm gestartet");
+ Anwendung jaujau = new Anwendung();
+ jaujau.gui.setVisible(true);
+
+
+ }*/
+
}
-
-
}
diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java
index 72e6818..4c5572c 100644
--- a/src/de/jaujau/spiellogik/Spiel.java
+++ b/src/de/jaujau/spiellogik/Spiel.java
@@ -1,129 +1,130 @@
package de.jaujau.spiellogik;
-import java.util.*;
+import java.util.Random;
+import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz;
+import de.jaujau.daten.Spieler;
+import de.jaujau.daten.Wert;
/**
- * Class Spiel
+ * Diese Klasse prüft die Spielaktionen und alterniert zwischen Spieler und Computer
+ * @author Fabian Keller
*/
public class Spiel {
- //
- // Fields
- //
-
- private spieler spieler;
- private spieler amZug;
- private boolean aussetzen;
- private boolean zwei_ziehen;
- private Kartensatz kartensatz;
-
- //
- // Constructors
- //
- public Spiel () { };
-
- //
- // Methods
- //
-
-
- //
- // Accessor methods
- //
-
- /**
- * Set the value of spieler
- * @param newVar the new value of spieler
- */
- public void setSpieler (spieler newVar) {
- spieler = newVar;
- }
-
- /**
- * Get the value of spieler
- * @return the value of spieler
- */
- public spieler getSpieler () {
- return spieler;
- }
-
- /**
- * Set the value of amZug
- * @param newVar the new value of amZug
- */
- public void setAmZug (spieler newVar) {
- amZug = newVar;
- }
-
- /**
- * Get the value of amZug
- * @return the value of amZug
- */
- public spieler getAmZug () {
- return amZug;
- }
-
- /**
- * Set the value of aussetzen
- * @param newVar the new value of aussetzen
- */
- public void setAussetzen (boolean newVar) {
- aussetzen = newVar;
- }
-
- /**
- * Get the value of aussetzen
- * @return the value of aussetzen
- */
- public boolean getAussetzen () {
- return aussetzen;
- }
-
- /**
- * Set the value of zwei_ziehen
- * @param newVar the new value of zwei_ziehen
- */
- public void setZwei_ziehen (boolean newVar) {
- zwei_ziehen = newVar;
- }
-
- /**
- * Get the value of zwei_ziehen
- * @return the value of zwei_ziehen
- */
- public boolean getZwei_ziehen () {
- return zwei_ziehen;
- }
-
- /**
- * Set the value of kartensatz
- * @param newVar the new value of kartensatz
- */
- public void setKartensatz (Kartensatz newVar) {
- kartensatz = newVar;
- }
-
- /**
- * Get the value of kartensatz
- * @return the value of kartensatz
- */
- public Kartensatz getKartensatz () {
- return kartensatz;
- }
-
- //
- // Other methods
- //
-
- /**
- * @param name
- */
- private void zug(spieler name)
- {
- }
-
-
+ private Spieler amZug;
+ private boolean spielgestartet = false;
+ private boolean aussetzen;
+ private boolean zwei_ziehen;
+ private int kartenZiehen;
+ private Kartensatz kartensatz;
+ private Farbe gelegteFarbe;
+ private Wert gelegterWert;
+
+
+ /**
+ * alterniert zwischen Spieler und Computer und legt Beginner fest
+ */
+ private void spiel() {
+ if(!spielgestartet) { //Starter durch zufall bestimmen
+ Random zufallszahl = new Random();
+ int zahl = zufallszahl.nextInt(1);
+ if(zahl == 1) {
+ amZug = Spieler.SPIELER;
+ }
+ else {
+ amZug = Spieler.COMPUTER;
+ }
+ spielgestartet = true;
+ kartensatz.ablegen(zufallszahl.nextInt(31));
+ return;
+ }
+ if(amZug == Spieler.SPIELER) {
+ amZug = Spieler.COMPUTER;
+ }
+ else {
+ amZug= Spieler.SPIELER;
+ }
+ }
+
+
+ /**
+ * prüft ob eine Karte mit einem bestimmten Kartenindex gelegt werden kann
+ * @param kartenindex
+ */
+ private void karteLegen(int kartenindex) { //Nur Strukturüberlegung, WÜNSCHER?
+ zugMoeglich();
+ Farbe legenFarbe;
+ Wert legenWert;
+ legenFarbe = kartensatz.getKarte(kartenindex).getFARBE();
+ legenWert = kartensatz.getKarte(kartenindex).getWERT();
+
+ if(zwei_ziehen && legenWert == Wert.SIEBEN) {
+ kartensatz.ablegen(kartenindex);
+ spiel();
+ return;
+ }
+ if(aussetzen && legenWert == Wert.ACHT) {
+ kartensatz.ablegen(kartenindex);
+ spiel();
+ return;
+ }
+ if(!aussetzen && !zwei_ziehen) {
+ if(legenFarbe == gelegteFarbe) {
+ kartensatz.ablegen(kartenindex);
+ spiel();
+ return;
+ }
+ if(legenWert == gelegterWert) {
+ kartensatz.ablegen(kartenindex);
+ spiel();
+ return;
+ }
+ }
+ if(aussetzen) {
+ spiel();
+ aussetzen = false;
+ }
+ }
+
+
+ /**
+ * prüft ob eine Karte gezogen werden kann
+ */
+ private void karteZiehen(){
+ zugMoeglich();
+ if(zwei_ziehen) {
+ for(int i = 0; i < kartenZiehen; i++) {
+ kartensatz.ziehen(amZug);
+ }
+ spiel();
+ kartenZiehen = 0;
+ zwei_ziehen = false;
+ }
+ if(aussetzen) {
+ spiel();
+ aussetzen = false;
+ }
+ }
+
+
+ /**
+ * prüft ob ein Zug überhaupt möglich ist und ließt Werte zum weiterarbeiten ein
+ */
+ private void zugMoeglich() {
+ gelegteFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
+ gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
+ if(gelegterWert == Wert.ACHT) {
+ aussetzen = true;
+ }
+ else {
+ aussetzen = false;
+ }
+ if(gelegterWert == Wert.SIEBEN) {
+ zwei_ziehen = true;
+ kartenZiehen += 2;
+ }
+ }
}
diff --git a/src/de/jaujau/spiellogik/Spieler.java b/src/de/jaujau/spiellogik/Spieler.java
deleted file mode 100644
index d46a724..0000000
--- a/src/de/jaujau/spiellogik/Spieler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package de.jaujau.spiellogik;
-
-import java.util.*;
-
-
-/**
- * Class Spieler
- */
-public class Spieler {
-
- //
- // Fields
- //
-
- private unsigned int punktestand;
- private String NAME;
-
- //
- // Constructors
- //
- public Spieler () { };
-
- //
- // Methods
- //
-
-
- //
- // Accessor methods
- //
-
- /**
- * Set the value of punktestand
- * @param newVar the new value of punktestand
- */
- public void setPunktestand (unsigned int newVar) {
- punktestand = newVar;
- }
-
- /**
- * Get the value of punktestand
- * @return the value of punktestand
- */
- public unsigned int getPunktestand () {
- return punktestand;
- }
-
- /**
- * Set the value of NAME
- * @param newVar the new value of NAME
- */
- public void setNAME (String newVar) {
- NAME = newVar;
- }
-
- /**
- * Get the value of NAME
- * @return the value of NAME
- */
- public String getNAME () {
- return NAME;
- }
-
- //
- // Other methods
- //
-
- /**
- * @param punkte
- */
- public void erhoehePunktestand(unsigned int punkte)
- {
- }
-
-
-}
diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java
index 11ee6c6..05ccddd 100644
--- a/src/de/jaujau/spiellogik/Spielzug.java
+++ b/src/de/jaujau/spiellogik/Spielzug.java
@@ -1,6 +1,7 @@
package de.jaujau.spiellogik;
import de.jaujau.daten.Kartensatz;
+import de.jaujau.daten.Spielerdaten;
/**
@@ -35,7 +36,7 @@ public class Spielzug {
* @param spieler
* @param kartensatz
*/
- public static void legen(Spieler spieler, Kartensatz kartensatz)
+ public static void legen(Spielerdaten spieler, Kartensatz kartensatz)
{
}
@@ -44,7 +45,7 @@ public class Spielzug {
* @param spieler
* @param kartensatz
*/
- public static void aussetzen(Spieler spieler, Kartensatz kartensatz)
+ public static void aussetzen(Spielerdaten spieler, Kartensatz kartensatz)
{
}
@@ -54,7 +55,7 @@ public class Spielzug {
* @param kartensatz
* @param anzahl
*/
- public static void ziehen(Spieler spieler, Kartensatz kartensatz, int anzahl)
+ public static void ziehen(Spielerdaten spieler, Kartensatz kartensatz, int anzahl)
{
}