This commit is contained in:
Fabian Keller
2021-01-08 13:28:08 +01:00
9 changed files with 54 additions and 45 deletions

View File

@@ -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

View File

@@ -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() {

View File

@@ -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");

View File

@@ -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"));

View File

@@ -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<Texturenpaket> 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];
}
}

View File

@@ -395,11 +395,6 @@ public class Dashboard_GUI extends JPanel{
}
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);

View File

@@ -108,12 +108,25 @@ 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
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);
}

View File

@@ -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);
}

Binary file not shown.