Texturenpakte Verwaltung und Test hinzugefügt
This commit is contained in:
@@ -1,10 +1,14 @@
|
|||||||
package de.jaujau.daten;
|
package de.jaujau.UnitTests;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import de.jaujau.daten.Farbe;
|
||||||
|
import de.jaujau.daten.Kartensatz;
|
||||||
|
import de.jaujau.daten.Spieler;
|
||||||
|
|
||||||
class TEST_Kartensatz {
|
class TEST_Kartensatz {
|
||||||
|
|
||||||
private Kartensatz satz;
|
private Kartensatz satz;
|
||||||
@@ -82,12 +86,12 @@ class TEST_Kartensatz {
|
|||||||
|
|
||||||
//Spieler legt Karte auf Ablagestapel
|
//Spieler legt Karte auf Ablagestapel
|
||||||
satz.ablegen(karteSpieler);
|
satz.ablegen(karteSpieler);
|
||||||
assertTrue(karteSpieler == satz.letztekarte);
|
assertTrue(karteSpieler == satz.getletzteKarte());
|
||||||
assertTrue(satz.getHand(Spieler.SPIELER).size()==0);
|
assertTrue(satz.getHand(Spieler.SPIELER).size()==0);
|
||||||
|
|
||||||
//Computer legt Karte auf Ablagestapel
|
//Computer legt Karte auf Ablagestapel
|
||||||
satz.ablegen(karteComputer);
|
satz.ablegen(karteComputer);
|
||||||
assertTrue(karteComputer == satz.letztekarte);
|
assertTrue(karteComputer == satz.getletzteKarte());
|
||||||
assertTrue(satz.getHand(Spieler.COMPUTER).size()==0);
|
assertTrue(satz.getHand(Spieler.COMPUTER).size()==0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,23 +1,49 @@
|
|||||||
package de.jaujau.daten;
|
package de.jaujau.UnitTests;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import de.jaujau.daten.Texturenpaket;
|
||||||
|
|
||||||
class TEST_Texturenpaket {
|
class TEST_Texturenpaket {
|
||||||
|
|
||||||
private Texturenpaket paket;
|
private Texturenpaket paket;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() throws Exception {
|
void setUp() throws Exception {
|
||||||
paket = new Texturenpaket("/home/sebastian/testpacket.zip");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void PacketLaden() {
|
void FehlerFreiesPaketLaden() {
|
||||||
|
paket = new Texturenpaket("/home/sebastian/testpaket.zip");
|
||||||
assertTrue(paket.ladePacket());
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,12 @@
|
|||||||
package de.jaujau.daten;
|
package de.jaujau.UnitTests;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import de.jaujau.daten.Texturenpakete;
|
||||||
|
|
||||||
class TEST_Texturenpakete {
|
class TEST_Texturenpakete {
|
||||||
|
|
||||||
private Texturenpakete pakete;
|
private Texturenpakete pakete;
|
||||||
@@ -16,7 +18,16 @@ class TEST_Texturenpakete {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() {
|
void test() {
|
||||||
fail("Not yet implemented");
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,15 @@
|
|||||||
package de.jaujau.daten;
|
package de.jaujau.daten;
|
||||||
|
|
||||||
import java.awt.Image;
|
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
|
* Verwaltet ein Texturenpackt
|
||||||
@@ -9,8 +18,8 @@ import java.awt.Image;
|
|||||||
*/
|
*/
|
||||||
public class Texturenpaket {
|
public class Texturenpaket {
|
||||||
|
|
||||||
private final String name;
|
private String name;
|
||||||
private final int level;
|
private int level;
|
||||||
private final String pfad;
|
private final String pfad;
|
||||||
|
|
||||||
|
|
||||||
@@ -30,16 +39,80 @@ public class Texturenpaket {
|
|||||||
* @return Paket vollständig laden, true/false
|
* @return Paket vollständig laden, true/false
|
||||||
*/
|
*/
|
||||||
public boolean ladePacket() {
|
public boolean ladePacket() {
|
||||||
|
System.out.println("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(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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gibt ein Bild das dem Texturenpacket zurück
|
* Gibt alle Bilddatein für ein Texturen Paket zurück
|
||||||
* @param KartenID der Textur
|
* @return Image der Texturen des Peketes als Image Array
|
||||||
* @return Image der Textur
|
|
||||||
*/
|
*/
|
||||||
public Image getTextur(int KartenID) {
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,4 +133,75 @@ public class Texturenpaket {
|
|||||||
public int getLevel() {
|
public int getLevel() {
|
||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testet das Texturenpaket auf vollständigkeit
|
||||||
|
* @return Paket vollständig, true/false
|
||||||
|
*/
|
||||||
|
private boolean testePaket() {
|
||||||
|
System.out.println("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(Zeile);
|
||||||
|
if(Zeile.contains("name:")) {
|
||||||
|
PaketName = true;
|
||||||
|
}
|
||||||
|
if(Zeile.contains("level:")) {
|
||||||
|
PaketLevel = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scanner.close();
|
||||||
|
if(!PaketName || !PaketLevel) {
|
||||||
|
System.out.println("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("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("Texturen Paket ist OK");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
package de.jaujau.daten;
|
package de.jaujau.daten;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Klasse Verwaltet die Texturenpackete des Spiels
|
* Diese Klasse Verwaltet die Texturenpackete des Spiels
|
||||||
@@ -7,8 +9,105 @@ package de.jaujau.daten;
|
|||||||
*/
|
*/
|
||||||
public class Texturenpakete {
|
public class Texturenpakete {
|
||||||
|
|
||||||
public Texturenpakete(){
|
private ArrayList<Texturenpaket> TexturenpaketListe;
|
||||||
|
private Image Texturen[];
|
||||||
|
private int AktivesPaket;
|
||||||
|
|
||||||
|
|
||||||
|
public Texturenpakete(){
|
||||||
|
TexturenpaketListe = new ArrayList<Texturenpaket>();
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user