diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index af7c000..aafbf11 100644 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -21,7 +21,8 @@ public class Audio { * Spielt den "Jau" Ton ab */ public void spieleJau() { - spieleTon("/sound/jaujau.wav"); + spieleTon("/sound/jau.wav"); + System.out.println("AUDIO: Spiele jau.wav"); } @@ -29,7 +30,8 @@ public class Audio { * Spielt den "JauJau" Ton ab */ public void spieleJauJau() { - spieleTon("/sound/jau.wav"); + spieleTon("/sound/jaujau.wav"); + System.out.println("AUDIO: Spiele jaujau.wav"); } @@ -51,12 +53,6 @@ public class Audio { } - //Kann gelöscht werden wenn es nicht mehr in der GUI benötigt wird - public void test() { - spieleJauJau(); - } - - /* * !!! DIESE METHODE IST NICHT VON MIR !!! * Quelle: https://stackoverflow.com/questions/2416935/how-to-play-wav-files-with-java diff --git a/src/de/jaujau/daten/Kartensatz.java b/src/de/jaujau/daten/Kartensatz.java index 64af8df..6c9c066 100644 --- a/src/de/jaujau/daten/Kartensatz.java +++ b/src/de/jaujau/daten/Kartensatz.java @@ -15,6 +15,7 @@ public class Kartensatz { * 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 + * Eine Zufällige Karte wird beim Start als Startkarte festgelet, in den Ablagestabel verschoben und als letzte Karte gespeichert */ public Kartensatz() { diff --git a/src/de/jaujau/daten/Texturenpaket.java b/src/de/jaujau/daten/Texturenpaket.java index 1946087..38347f3 100755 --- a/src/de/jaujau/daten/Texturenpaket.java +++ b/src/de/jaujau/daten/Texturenpaket.java @@ -1,6 +1,7 @@ package de.jaujau.daten; import java.awt.Image; +import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -78,14 +79,15 @@ public class Texturenpaket { 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]; + System.out.println("TEXTURENPAKET: Name: " + name); } //Level Auslesen if(Spalte[0].equals("level")) { level = Integer.parseInt(Spalte[1]); + System.out.println("TEXTURENPAKET: Level: " + level); } } @@ -110,16 +112,16 @@ public class Texturenpaket { /** - * Gibt alle Bilddatein von dem Texturenpaket als Image Array zurück - * @return Image Array der Texturen des Paketes + * Gibt alle Bilddatein von dem Texturenpaket als BufferedImage Array zurück + * @return BufferedImage Array der Texturen des Paketes */ - public Image[] getTexturen() { + public BufferedImage[] getTexturen() { if(testePaket()) { try { File zipDatei = new File(pfad); ZipFile paketDatei = new ZipFile(zipDatei); - Image Bilder[] = new Image[33]; + BufferedImage Bilder[] = new BufferedImage[33]; for(int i = 0; i < 33; i++) { ZipEntry zipInhaltTextur = paketDatei.getEntry(i+".png"); diff --git a/src/de/jaujau/daten/TexturenpaketIntern.java b/src/de/jaujau/daten/TexturenpaketIntern.java index a445af9..4af9410 100755 --- a/src/de/jaujau/daten/TexturenpaketIntern.java +++ b/src/de/jaujau/daten/TexturenpaketIntern.java @@ -1,6 +1,6 @@ package de.jaujau.daten; -import java.awt.Image; +import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; @@ -41,12 +41,12 @@ public class TexturenpaketIntern extends Texturenpaket{ /** - * Gibt alle Bilddatein von dem Texturenpaket als Image Array zurück - * @return Image Array der Texturen des Paketes + * Gibt alle Bilddatein von dem Texturenpaket als BufferedImage Array zurück + * @return BufferedImage Array der Texturen des Paketes */ @Override - public Image[] getTexturen() { - Image Bilder[] = new Image[33]; + public BufferedImage[] getTexturen() { + BufferedImage Bilder[] = new BufferedImage[33]; for(int i = 0; i < 33; i++) { try { Bilder[i] = ImageIO.read(getClass().getResource(pfad +"/" + i + ".png")); diff --git a/src/de/jaujau/daten/Texturenpakete.java b/src/de/jaujau/daten/Texturenpakete.java index 4580fd2..16a3870 100644 --- a/src/de/jaujau/daten/Texturenpakete.java +++ b/src/de/jaujau/daten/Texturenpakete.java @@ -1,6 +1,6 @@ package de.jaujau.daten; -import java.awt.Image; +import java.awt.image.BufferedImage; import java.util.ArrayList; /** @@ -10,7 +10,7 @@ import java.util.ArrayList; public class Texturenpakete { private ArrayList TexturenpaketListe; - private Image Texturen[]; + private BufferedImage Texturen[]; private int AktivesPaket; @@ -80,8 +80,8 @@ 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!"); return true; - //ToDo: Wenn für ein Bild ein Null Objekt zurückgegebn soll das Bild ausgetauscht werden? } return false; } @@ -98,6 +98,7 @@ public class Texturenpakete { Texturenpaket NeuesPaket = new Texturenpaket(Pfad); if(NeuesPaket.ladePacket()) { TexturenpaketListe.add(NeuesPaket); + System.out.println("TEXTURENPAKETE: Paket '" + NeuesPaket.getName() + "' hinzugfügt!"); return true; } @@ -107,14 +108,15 @@ public class Texturenpakete { /** * Gibt eine Textur des aktuellen Paketes als Image zurück + * Wenn die ID nicht im Bereich der Karten liegt wird Kartenrückseite zurückgegebn * @param KartenNr der Textur - * @return Textur als Image + * @return Textur als BufferedImage */ - public Image getTextur(int KartenNr) { + public BufferedImage getTextur(int KartenNr) { if((KartenNr >= 0) && (KartenNr < 33)) { return Texturen[KartenNr]; } - return null; + return Texturen[32]; } } diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 6860bb4..281a64d 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -394,12 +394,7 @@ public class Dashboard_GUI extends JPanel{ mitte_unten.updateUI(); } - public Farbe getwunschfarbe() { - - - - - + public Farbe getwunschfarbe() { return Farbe.KARO; } @@ -411,8 +406,8 @@ public class Dashboard_GUI extends JPanel{ label_final.setText("Spiel gewonnen"); } if(spieler == spieler.COMPUTER) { - System.out.println("Spiel verloren"); - label_final.setText("Spiel verloren"); + System.out.println("Spieler verloren"); + label_final.setText("Spieler verloren"); } player_hand.setVisible(false); label_final.setVisible(true); diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 4b05da1..302b486 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -108,11 +108,24 @@ public class Computer_gegner { if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen rueckgabeindex = wertLegen(letztekartewert); } - else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen - rueckgabeindex = farbeLegen(letztekartefarbe); - } - else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen - rueckgabeindex = wertLegen(letztekartewert); + 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); + } + else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen + rueckgabeindex = wertLegen(letztekartewert); + } + } + else { + if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer die Wert auf der Hand, versucht er diese zu legen + rueckgabeindex = wertLegen(letztekartewert); + } + else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer nicht den passenden Wert, aber eine passende Farbe, legt er diese + rueckgabeindex = farbeLegen(letztekartefarbe); + } + + } } 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); diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index a5c6595..15b716f 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -62,7 +62,7 @@ public class Spiel { * Initialisiert ein Spiel * @param dashboard */ - public void spiel() { + public void spiel(Dashboard_GUI dashboard) { System.out.println("\nSPIEL Spiel gestartet."); Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(2); @@ -93,7 +93,7 @@ public class Spiel { switch(computerZug) { case -2: //aussetzen anzeigen? aussetzen = false; - alternieren(); + alternieren(dashboard); break; case -1: karteZiehen(); @@ -114,7 +114,7 @@ public class Spiel { * Organisiert den Spielablauf * @param dashboard */ - private void alternieren() { + private void alternieren(Dashboard_GUI dashboard) { if(spielGewonnen) return; if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; @@ -125,7 +125,7 @@ public class Spiel { switch(computerZug) { case -2: aussetzen = false; - alternieren(); + alternieren(dashboard); break; case -1: karteZiehen(); @@ -167,7 +167,7 @@ public class Spiel { public void aussetzen() { if(spielGewonnen) return; aussetzen = false;//alternieren wird aufgerufen bevor GUI fertig abgearbeitet. - alternieren(); + alternieren(dashboard); } /** @@ -196,7 +196,7 @@ public class Spiel { System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); effekteSetzen(); if(kartensatz.getKarte(kartenindex).getWERT() == Wert.BUBE) { - if(amZug == Spieler.COMPUTER) alternieren(); + if(amZug == Spieler.COMPUTER) alternieren(dashboard); } else { alternieren(); @@ -223,7 +223,7 @@ public class Spiel { kartensatz.ziehen(amZug); System.out.println("\nSPIEL 1 Karte gezogen"); } - alternieren(); + alternieren(dashboard); } else { //AussetzenButton return; @@ -237,7 +237,7 @@ public class Spiel { */ public void wuenscher(Farbe farbe) { kartensatz.SetWunschfarbe(farbe); - alternieren(); + alternieren(dashboard); } diff --git a/src/sound/jaujau.wav b/src/sound/jaujau.wav index fb15ccf..3a6ee05 100644 Binary files a/src/sound/jaujau.wav and b/src/sound/jaujau.wav differ