Compare commits
10 Commits
Author | SHA1 | Date |
---|---|---|
Kai Sellmann | 3056aed05c | |
Kai Sellmann | 9fa2f7f4ae | |
Mohammad Hawrami | 4b4ebbfbe4 | |
Mohammad Hawrami | 5de20bcf4c | |
Mohammad Hawrami | 4030351fde | |
Philipp Kotte | f13e1208ba | |
Kai Sellmann | 103361b06a | |
Kai Sellmann | 99601d8d3a | |
Kai Sellmann | e9c835be45 | |
Kai Sellmann | 3b65aa78e5 |
|
@ -10,3 +10,5 @@
|
||||||
# Jar dateien
|
# Jar dateien
|
||||||
/lib
|
/lib
|
||||||
.idea
|
.idea
|
||||||
|
/Main.class
|
||||||
|
/RendomTest.class
|
||||||
|
|
|
@ -6,13 +6,24 @@ written on: 05 / 10 / 2023 at: 23:43
|
||||||
*/
|
*/
|
||||||
package Domain.Block;
|
package Domain.Block;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Block {
|
public class Block {
|
||||||
public void addZeile(){
|
private ArrayList<Blockzeile> zeilen;
|
||||||
|
|
||||||
|
public Block(){
|
||||||
|
this.zeilen = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Blockzeile[] getDaten() {
|
public void addZeile(Blockzeile blockzeile) {
|
||||||
return null;
|
zeilen.add(blockzeile);
|
||||||
}
|
}
|
||||||
//neues Kommentar
|
|
||||||
}
|
public Blockzeile[] getDaten(){
|
||||||
|
if(zeilen.isEmpty()){
|
||||||
|
System.out.println("Die Liste der Blockzeilen ist Leer. ");
|
||||||
|
return zeilen.toArray(new Blockzeile[0]);
|
||||||
|
}
|
||||||
|
return zeilen.toArray(new Blockzeile[0]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,17 +6,25 @@ written on: 05 / 10 / 2023 at: 23:44
|
||||||
*/
|
*/
|
||||||
package Domain.Block;
|
package Domain.Block;
|
||||||
|
|
||||||
public class Blockeintrag {
|
import Domain.Spieler;
|
||||||
public int punkte;
|
|
||||||
public int stiche;
|
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class Blockeintrag {
|
||||||
|
private int punkte;
|
||||||
|
private int stiche;
|
||||||
|
private Spieler id;
|
||||||
public Blockeintrag() {
|
public Blockeintrag() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Blockeintrag(int punkte, int stiche) {
|
public Blockeintrag(int punkte, int stiche, Spieler id) {
|
||||||
this.punkte = punkte;
|
if(stiche < 0){
|
||||||
|
throw new IllegalArgumentException("Ihre Stiche dürfen nicht im Negativen bereich sein");
|
||||||
|
}
|
||||||
this.stiche = stiche;
|
this.stiche = stiche;
|
||||||
|
this.punkte = punkte;
|
||||||
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPunkte() {
|
public int getPunkte() {
|
||||||
|
@ -28,6 +36,9 @@ public class Blockeintrag {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStiche(int stiche) {
|
public void setStiche(int stiche) {
|
||||||
|
if (stiche < 0){
|
||||||
|
throw new IllegalArgumentException("Ihre Stich dürfen nicht im Negative bereich sein");
|
||||||
|
}
|
||||||
this.stiche = stiche;
|
this.stiche = stiche;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,4 +46,31 @@ public class Blockeintrag {
|
||||||
this.punkte = punkte;
|
this.punkte = punkte;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Spieler getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object ob){
|
||||||
|
if (this == ob) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (ob == null || getClass() != ob.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Blockeintrag andererEintrag = (Blockeintrag) ob;
|
||||||
|
return this.punkte == andererEintrag.punkte && this.stiche == andererEintrag.stiche
|
||||||
|
&& Objects.equals(this.id, andererEintrag.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(punkte, stiche, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return getPunkte() + ", S: " + getStiche() + " | ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ written on: 05 / 10 / 2023 at: 23:44
|
||||||
*/
|
*/
|
||||||
package Domain.Block;
|
package Domain.Block;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Blockzeile {
|
public class Blockzeile {
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -21,17 +23,21 @@ public class Blockzeile {
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
private int rundenNummer;
|
private int rundenNummer;
|
||||||
private Blockeintrag[] eintraege;
|
private ArrayList<Blockeintrag> eintraege;
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// Konstruktoren (default und spezifische)
|
// Konstruktoren (default und spezifische)
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
public Blockzeile(int rundenNummer, int spielerAnzahl) {
|
public Blockzeile(){
|
||||||
this.rundenNummer = rundenNummer;
|
|
||||||
this.eintraege = new Blockeintrag[spielerAnzahl];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Blockzeile(int rundenNummer, Blockeintrag eintrag) {
|
||||||
|
this.rundenNummer = rundenNummer;
|
||||||
|
this.eintraege = new ArrayList<>();
|
||||||
|
addEintrag(eintrag);
|
||||||
|
}
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// statische Methoden
|
// statische Methoden
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -39,7 +45,13 @@ public class Blockzeile {
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// Getter und Setter
|
// Getter und Setter
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
public int getRundenNummer() {
|
||||||
|
return rundenNummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRundenNummer(int rundenNummer) {
|
||||||
|
this.rundenNummer = rundenNummer;
|
||||||
|
}
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// @Overrides
|
// @Overrides
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -48,21 +60,27 @@ public class Blockzeile {
|
||||||
// öffentliche Methodes
|
// öffentliche Methodes
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
public void addEintrag(Blockeintrag be) {
|
public void addEintrag(Blockeintrag eintrag) {
|
||||||
|
if(eintraege != null){
|
||||||
for (int i = 0; i < eintraege.length; i++) {
|
eintraege.add(eintrag);
|
||||||
if (eintraege[i] == null) {
|
|
||||||
eintraege[i] = be;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Blockeintrag[] getDaten() {
|
public Blockeintrag[] getDaten() {
|
||||||
return eintraege;
|
return eintraege.toArray(new Blockeintrag[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// Hilfsmethoden (privat)
|
// Hilfsmethoden (privat)
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
|
public Blockeintrag[] getValidDaten() {
|
||||||
|
Blockeintrag[] dataArray = getDaten();
|
||||||
|
|
||||||
|
for (Blockeintrag eintrag : dataArray) {
|
||||||
|
if (eintrag == null) {
|
||||||
|
throw new IllegalStateException("Das Array ist leer");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dataArray;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
============================================================
|
|
||||||
This is the "MagierTrumpfException" file from Author: Philipp Kotte
|
|
||||||
written on: 26 / 10 / 2023 at: 15:35
|
|
||||||
============================================================
|
|
||||||
*/
|
|
||||||
package Domain.Exceptions;
|
|
||||||
|
|
||||||
public class MagierTrumpfException extends SpielException {
|
|
||||||
|
|
||||||
public MagierTrumpfException(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
============================================================
|
|
||||||
This is the "NarrenTrumpfException" file from Author: Philipp Kotte
|
|
||||||
written on: 26 / 10 / 2023 at: 15:38
|
|
||||||
============================================================
|
|
||||||
*/
|
|
||||||
package Domain.Exceptions;
|
|
||||||
|
|
||||||
public class NarrenTrumpfException extends SpielException {
|
|
||||||
|
|
||||||
public NarrenTrumpfException(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -28,12 +28,11 @@ public abstract class SpielException extends Exception {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpielException(int id, String message) {
|
public SpielException(int id, String message) {
|
||||||
this.message = message;
|
|
||||||
this.id = id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpielException(String message) {
|
public SpielException(String message) {
|
||||||
this.message = message;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
|
@ -6,9 +6,7 @@ written on: 05 / 10 / 2023 at: 23:28
|
||||||
*/
|
*/
|
||||||
package Domain.Karten;
|
package Domain.Karten;
|
||||||
|
|
||||||
import java.io.Serializable;
|
public abstract class Karte {
|
||||||
|
|
||||||
public abstract class Karte implements Serializable {
|
|
||||||
|
|
||||||
// Statische Konstanten
|
// Statische Konstanten
|
||||||
|
|
||||||
|
|
|
@ -44,11 +44,11 @@ public class Zahlenkarte extends Karte {
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// Getter und Setter
|
// Getter und Setter
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return super.getId();
|
return super.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFarbe(Kartenfarbe farbe) {
|
public void setFarbe(Kartenfarbe farbe) {
|
||||||
this.farbe = farbe;
|
this.farbe = farbe;
|
||||||
}
|
}
|
||||||
|
@ -69,11 +69,6 @@ public class Zahlenkarte extends Karte {
|
||||||
// @Overrides
|
// @Overrides
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "ID: " + this.getId() + " Typ: " + this.getFarbe() + " Wert: " + this.getKartenNummer();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// öffentliche Methodes
|
// öffentliche Methodes
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
|
@ -6,7 +6,6 @@ written on: 05 / 10 / 2023 at: 23:42
|
||||||
*/
|
*/
|
||||||
package Domain;
|
package Domain;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -15,21 +14,22 @@ import java.util.HashMap;
|
||||||
import Domain.Enums.Kartenfarbe;
|
import Domain.Enums.Kartenfarbe;
|
||||||
import Domain.Karten.*;
|
import Domain.Karten.*;
|
||||||
|
|
||||||
public class Kartenstapel implements Serializable {
|
|
||||||
|
public class Kartenstapel {
|
||||||
|
|
||||||
// Statische Konstanten
|
// Statische Konstanten
|
||||||
|
|
||||||
// Statische Attribute
|
// Statische Attribute
|
||||||
private static int kartenzählen = 1;
|
private static int kartenzählen = 1;
|
||||||
// Attribute der Objekte
|
// Attribute der Objekte
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Die HashMap besitzt alle Karten in sortierter Reihenfolge Die ArrayList wird
|
* Die HashMap besitzt alle Karten in sortierter Reihenfolge Die ArrayList wird
|
||||||
* durch Zufall erzeugt und gibt den Key der HashMap wieder. D.h.
|
* durch Zufall erzeugt und gibt den Key der HashMap wieder. D.h.
|
||||||
*/
|
*/
|
||||||
private HashMap<Integer, Karte> kartensortiert = new HashMap<>();
|
private HashMap<Integer, Karte> kartensortiert = new HashMap<>();
|
||||||
|
|
||||||
private ArrayList<Karte> kartengemischt = new ArrayList<>();
|
private HashMap<Integer, Karte> kartengemischt = new HashMap<>();
|
||||||
|
|
||||||
// Konstruktoren
|
// Konstruktoren
|
||||||
public Kartenstapel() {
|
public Kartenstapel() {
|
||||||
|
@ -59,6 +59,7 @@ public class Kartenstapel implements Serializable {
|
||||||
kartensortiert.put(i, new Zahlenkarte(i, Kartenfarbe.ZWERG, i - 47));
|
kartensortiert.put(i, new Zahlenkarte(i, Kartenfarbe.ZWERG, i - 47));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// Statische Methoden
|
// Statische Methoden
|
||||||
|
|
||||||
|
@ -79,7 +80,7 @@ public class Kartenstapel implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<Karte> getKartenstapelGemischt() {
|
public Collection<Karte> getKartenstapelGemischt() {
|
||||||
return kartengemischt;
|
return kartengemischt.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -116,9 +117,13 @@ public class Kartenstapel implements Serializable {
|
||||||
for (int i = 0; i < 60; i++) {
|
for (int i = 0; i < 60; i++) {
|
||||||
int index = zufall.nextInt(zahlen.size());
|
int index = zufall.nextInt(zahlen.size());
|
||||||
int schlüsselzahl = zahlen.get(index);
|
int schlüsselzahl = zahlen.get(index);
|
||||||
kartengemischt.add(kartensortiert.get(schlüsselzahl));
|
kartengemischt.put(i + 1, kartensortiert.get(schlüsselzahl));
|
||||||
zahlen.remove(index);
|
zahlen.remove(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(Karte k : kartengemischt.values()) {
|
||||||
|
System.out.println(k.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -127,12 +132,13 @@ public class Kartenstapel implements Serializable {
|
||||||
* falls noch eine Karte auf dem Stapel liegen sollte. Hierzu wird die Runde,
|
* falls noch eine Karte auf dem Stapel liegen sollte. Hierzu wird die Runde,
|
||||||
* als Ausgangswert genommen.
|
* als Ausgangswert genommen.
|
||||||
*/
|
*/
|
||||||
public Karte getObersteKarte() {
|
public Object getObersteKarte() {
|
||||||
Karte k = kartengemischt.get(0);
|
Object k = kartengemischt.values().toArray()[0];
|
||||||
kartengemischt.remove(0);
|
kartengemischt.remove(k);
|
||||||
return k;
|
return k;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -7,11 +7,8 @@ written on: 05 / 10 / 2023 at: 23:48
|
||||||
package Domain;
|
package Domain;
|
||||||
|
|
||||||
import Domain.Enums.Geschlecht;
|
import Domain.Enums.Geschlecht;
|
||||||
import Domain.Karten.Karte;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
public class Spieler extends Object implements Serializable {
|
public class Spieler extends Object implements Serializable {
|
||||||
|
|
||||||
|
@ -30,7 +27,6 @@ public class Spieler extends Object implements Serializable {
|
||||||
private String name;
|
private String name;
|
||||||
private int vorhersage;
|
private int vorhersage;
|
||||||
private Geschlecht geschlecht;
|
private Geschlecht geschlecht;
|
||||||
private ArrayList<Karte> karten = new ArrayList<>();
|
|
||||||
//
|
//
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -167,14 +163,6 @@ public class Spieler extends Object implements Serializable {
|
||||||
return vorhersage;
|
return vorhersage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addKarte(Karte k) {
|
|
||||||
this.karten.add(k);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Karte[] getHandKarte() {
|
|
||||||
return (Karte[]) this.karten.toArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// @Overrides
|
// @Overrides
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -188,13 +176,7 @@ public class Spieler extends Object implements Serializable {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
String temp = "";
|
return "ID: " + this.id + " Name: " + this.name + " (" + this.geschlecht + ")";
|
||||||
temp += "ID: " + this.getId() + "\n";
|
|
||||||
temp += "Name: " + this.getName() + "(" + this.getGeschlecht() + ")" + "\n";
|
|
||||||
for (Karte k : this.karten) {
|
|
||||||
temp += k.toString() + "\n";
|
|
||||||
}
|
|
||||||
return temp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
|
@ -6,13 +6,9 @@ written on: 11 / 10 / 2023 at: 20:25
|
||||||
*/
|
*/
|
||||||
package Domain;
|
package Domain;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import Domain.Enums.Kartenfarbe;
|
|
||||||
import Domain.Karten.Karte;
|
import Domain.Karten.Karte;
|
||||||
|
|
||||||
public class Stich implements Serializable {
|
public class Stich {
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// statische Konstanten
|
// statische Konstanten
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -24,8 +20,9 @@ public class Stich implements Serializable {
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// Attribute jedes Objektes
|
// Attribute jedes Objektes
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
private ArrayList<Karte> karten;
|
private Karte[] karten;
|
||||||
private Kartenfarbe trumpfFarbe;
|
private int[] spielerID;
|
||||||
|
private int kartenCount = 0;
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// Konstruktoren (default und spezifische)
|
// Konstruktoren (default und spezifische)
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -37,11 +34,6 @@ public class Stich implements Serializable {
|
||||||
setSpielerAnzahl(spielerAnzahl);
|
setSpielerAnzahl(spielerAnzahl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Stich(int spielerAnzahl, Kartenfarbe trumpKartenfarbe) {
|
|
||||||
setSpielerAnzahl(spielerAnzahl);
|
|
||||||
setTurmpfFarbe(trumpKartenfarbe);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
// statische Methoden
|
// statische Methoden
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -51,19 +43,18 @@ public class Stich implements Serializable {
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
|
||||||
public void setSpielerAnzahl(int spielerAnzahl) {
|
public void setSpielerAnzahl(int spielerAnzahl) {
|
||||||
this.karten = new ArrayList<>(spielerAnzahl);
|
this.karten = new Karte[spielerAnzahl];
|
||||||
|
this.spielerID = new int[spielerAnzahl];
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTurmpfFarbe(Kartenfarbe trumpfFarbe) {
|
public Karte[] getKarten() {
|
||||||
this.trumpfFarbe = trumpfFarbe;
|
return this.karten;
|
||||||
}
|
|
||||||
|
|
||||||
public Kartenfarbe getTrumpfFarbe() {
|
|
||||||
return this.trumpfFarbe;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addKarte(int spielerID, Karte karte) {
|
public void addKarte(int spielerID, Karte karte) {
|
||||||
this.karten.add(karte);
|
this.karten[kartenCount] = karte;
|
||||||
|
this.spielerID[kartenCount] = spielerID;
|
||||||
|
kartenCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------*/
|
/*------------------------------------------*/
|
||||||
|
@ -73,8 +64,8 @@ public class Stich implements Serializable {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
String text = "";
|
String text = "";
|
||||||
for (int i = 0; i < this.karten.size(); i++) {
|
for (int i = 0; i < this.karten.length; i++) {
|
||||||
text += this.karten.get(i).toString();
|
text += this.karten[i].toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return text;
|
return text;
|
||||||
|
|
|
@ -7,25 +7,16 @@ written on: 05 / 10 / 2023 at: 23:25
|
||||||
package Facade;
|
package Facade;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
import Domain.Kartenstapel;
|
import Domain.Kartenstapel;
|
||||||
import Domain.Spieler;
|
import Domain.Spieler;
|
||||||
import Domain.Stich;
|
import Domain.Stich;
|
||||||
import Domain.Block.Block;
|
import Domain.Block.Block;
|
||||||
import Domain.Enums.Geschlecht;
|
import Domain.Enums.Geschlecht;
|
||||||
import Domain.Enums.Kartenfarbe;
|
|
||||||
import Domain.Exceptions.EmptyListException;
|
import Domain.Exceptions.EmptyListException;
|
||||||
import Domain.Exceptions.MagierTrumpfException;
|
|
||||||
import Domain.Exceptions.NarrenTrumpfException;
|
|
||||||
import Domain.Exceptions.SpielerNotFoundException;
|
import Domain.Exceptions.SpielerNotFoundException;
|
||||||
import Domain.Karten.Karte;
|
import Domain.Karten.Karte;
|
||||||
import Domain.Karten.Magierkarte;
|
|
||||||
import Domain.Karten.Narrenkarte;
|
|
||||||
import Domain.Karten.Zahlenkarte;
|
|
||||||
|
|
||||||
public class Spiel implements Serializable {
|
public class Spiel implements Serializable {
|
||||||
|
|
||||||
|
@ -50,8 +41,8 @@ public class Spiel implements Serializable {
|
||||||
private boolean istBeendet;
|
private boolean istBeendet;
|
||||||
private Spieler spielerAmZug;
|
private Spieler spielerAmZug;
|
||||||
private int runde;
|
private int runde;
|
||||||
private ArrayList<Spieler> spieler = new ArrayList<>();
|
private HashMap<Integer, Spieler> spieler = new HashMap<>();
|
||||||
private ArrayList<Stich> stiche = new ArrayList<>();
|
private HashMap<Integer, Stich> stiche = new HashMap<>();
|
||||||
private boolean[] id_check = { false, false, false, false, false, false };
|
private boolean[] id_check = { false, false, false, false, false, false };
|
||||||
private Kartenstapel kartenstapel;
|
private Kartenstapel kartenstapel;
|
||||||
private Block block;
|
private Block block;
|
||||||
|
@ -64,15 +55,16 @@ public class Spiel implements Serializable {
|
||||||
this.istGestartet = false;
|
this.istGestartet = false;
|
||||||
this.istBeendet = false;
|
this.istBeendet = false;
|
||||||
this.spielerAmZug = null;
|
this.spielerAmZug = null;
|
||||||
this.runde = 1;
|
this.runde = 0;
|
||||||
this.kartenstapel = new Kartenstapel();
|
this.kartenstapel = new Kartenstapel();
|
||||||
};
|
};
|
||||||
/*--------------------------------------------------------
|
/*--------------------------------------------------------*/
|
||||||
statische Methoden
|
// statische Methoden
|
||||||
--------------------------------------------------------*/
|
/*--------------------------------------------------------*/
|
||||||
/*--------------------------------------------------------
|
|
||||||
Getter und Setter
|
/*--------------------------------------------------------*/
|
||||||
--------------------------------------------------------*/
|
// Getter und Setter
|
||||||
|
/*--------------------------------------------------------*/
|
||||||
|
|
||||||
public void setSpielGestartet(boolean gestarted) {
|
public void setSpielGestartet(boolean gestarted) {
|
||||||
this.istGestartet = gestarted;
|
this.istGestartet = gestarted;
|
||||||
|
@ -90,9 +82,9 @@ public class Spiel implements Serializable {
|
||||||
this.spielerAmZug = spieler;
|
this.spielerAmZug = spieler;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------
|
/*--------------------------------------------------------*/
|
||||||
@Overrides
|
// @Overrides
|
||||||
--------------------------------------------------------*/
|
/*--------------------------------------------------------*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
@ -108,7 +100,7 @@ public class Spiel implements Serializable {
|
||||||
if (this.spieler.size() == 0) {
|
if (this.spieler.size() == 0) {
|
||||||
text += "Noch keine Spieler vorhanden \n";
|
text += "Noch keine Spieler vorhanden \n";
|
||||||
} else {
|
} else {
|
||||||
for (Spieler s : this.spieler) {
|
for (Spieler s : this.spieler.values()) {
|
||||||
text += "[" + s.getId() + "] " + s.getName() + " ("
|
text += "[" + s.getId() + "] " + s.getName() + " ("
|
||||||
+ s.getGeschlecht() + ")" + "\n";
|
+ s.getGeschlecht() + ")" + "\n";
|
||||||
|
|
||||||
|
@ -126,9 +118,9 @@ public class Spiel implements Serializable {
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------
|
/*--------------------------------------------------------*/
|
||||||
öffentliche Methodes
|
// öffentliche Methodes
|
||||||
--------------------------------------------------------*/
|
/*--------------------------------------------------------*/
|
||||||
|
|
||||||
public void addSpieler(String name, Geschlecht geschlecht) {
|
public void addSpieler(String name, Geschlecht geschlecht) {
|
||||||
int id = 1;
|
int id = 1;
|
||||||
|
@ -137,17 +129,21 @@ public class Spiel implements Serializable {
|
||||||
}
|
}
|
||||||
id_check[id - 1] = true;
|
id_check[id - 1] = true;
|
||||||
Spieler temp = new Spieler(id, name, geschlecht);
|
Spieler temp = new Spieler(id, name, geschlecht);
|
||||||
this.spieler.add(temp);
|
this.spieler.put(id, temp);
|
||||||
|
System.out.println(this.spieler.get(id));
|
||||||
|
if (this.spielerAmZug == null) {
|
||||||
|
this.spielerAmZug = temp;
|
||||||
|
}
|
||||||
updateSpielerAmZug();
|
updateSpielerAmZug();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeSpieler(int index) throws SpielerNotFoundException, EmptyListException, RuntimeException {
|
public void removeSpieler(int id_spieler) throws SpielerNotFoundException, EmptyListException, RuntimeException {
|
||||||
if (this.spieler.size() >= index) {
|
if (this.spieler.containsKey(id_spieler)) {
|
||||||
this.spieler.remove(index);
|
this.spieler.remove(id_spieler);
|
||||||
this.id_check[index - 1] = false;
|
this.id_check[id_spieler - 1] = false;
|
||||||
} else if (this.spieler.size() < index) {
|
} else if (!this.spieler.containsKey(id_spieler)) {
|
||||||
throw new SpielerNotFoundException("Dieser Spieler existiert nicht");
|
throw new SpielerNotFoundException("Dieser Spieler existiert nicht");
|
||||||
} else if (this.spieler.size() == 0) {
|
} else if (this.spieler.values().size() == 0) {
|
||||||
throw new EmptyListException("Dise Liste ist Leer.");
|
throw new EmptyListException("Dise Liste ist Leer.");
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("Unkown Error");
|
throw new RuntimeException("Unkown Error");
|
||||||
|
@ -158,68 +154,52 @@ public class Spiel implements Serializable {
|
||||||
public String[] getAlleSpieler() {
|
public String[] getAlleSpieler() {
|
||||||
String[] spieler_text = new String[this.spieler.size()];
|
String[] spieler_text = new String[this.spieler.size()];
|
||||||
int zähler = 0;
|
int zähler = 0;
|
||||||
for (Spieler s : this.spieler) {
|
for (Spieler s : this.spieler.values()) {
|
||||||
spieler_text[zähler] = s.toString();
|
spieler_text[zähler] = s.toString();
|
||||||
zähler++;
|
zähler++;
|
||||||
}
|
}
|
||||||
return spieler_text;
|
return spieler_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void starteSpiel() throws MagierTrumpfException, NarrenTrumpfException {
|
public void starteSpiel() {
|
||||||
// sing genügend Spieler angelegt?
|
// sing genügend Spieler angelegt?
|
||||||
if (this.spieler.size() >= 3 && this.spieler.size() <= 6) {
|
if (this.spieler.size() >= 3 && this.spieler.size() <= 6) {
|
||||||
this.istGestartet = true;
|
this.istGestartet = true;
|
||||||
erstelleStiche(this.runde);
|
while (!this.istSpielBeendet()) {
|
||||||
austeilen();
|
System.out.println("Das Spiel wurde gestartet.");
|
||||||
// Karte k = this.kartenstapel.getObersteKarte();
|
|
||||||
Karte k = new Magierkarte(0);
|
// Beginn der Runde
|
||||||
if (k instanceof Magierkarte) {
|
// Stiche erstellen
|
||||||
throw new MagierTrumpfException("Es wurde ein Magier als Trumpf gezogen");
|
erstelleStiche(this.runde);
|
||||||
} else if (k instanceof Narrenkarte) {
|
// Karten für jeden Spieler verteilen
|
||||||
setTrumpf(null);
|
|
||||||
throw new NarrenTrumpfException("Es wurde ein Narr als Trumpf gezogen");
|
// While loop mit der länge der anzahl Stiche für die jeweilige Runde
|
||||||
} else {
|
|
||||||
Zahlenkarte zk = (Zahlenkarte) k;
|
// Für jeden Durchgang des Loops wird der Stich ermittelt
|
||||||
setTrumpf(zk.getFarbe());
|
|
||||||
|
// Wer gewonnen hat wird dann der Stich zugeordnet
|
||||||
|
|
||||||
|
// prüfen ob das Spiel zuende ist
|
||||||
|
|
||||||
|
// Der Spieler der jetzt am Zug ist, ist der der den letzten Stich gewonne hat
|
||||||
|
|
||||||
|
// Runde erhöhen
|
||||||
|
runde++;
|
||||||
}
|
}
|
||||||
// While loop mit der länge der anzahl Stiche für die jeweilige Runde
|
|
||||||
|
|
||||||
// Für jeden Durchgang des Loops wird der Stich ermittelt
|
|
||||||
|
|
||||||
// Wer gewonnen hat wird dann der Stich zugeordnet
|
|
||||||
|
|
||||||
// prüfen ob das Spiel zuende ist
|
|
||||||
|
|
||||||
// Der Spieler der jetzt am Zug ist, ist der der den letzten Stich gewonne hat
|
|
||||||
|
|
||||||
// Runde erhöhen
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Es fehlen " + (3 - this.spieler.size()) + " spieler");
|
System.out.println("Es fehlen " + (3 - this.spieler.size()) + " spieler");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gibt den Spieler zurück, der am Zug ist.
|
|
||||||
*
|
|
||||||
* @return String[] -> name, id, geschlecht, vorhersage
|
|
||||||
*/
|
|
||||||
public String[] getSpielerAmZug() {
|
public String[] getSpielerAmZug() {
|
||||||
Spieler s = this.spielerAmZug;
|
return new String[1];
|
||||||
String[] temp = { s.getName(), "" + s.getId(), s.getGeschlecht().toString(), "" + s.getVorhersage() };
|
|
||||||
return temp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean istSpielGestartet() {
|
public boolean istSpielGestartet() {
|
||||||
return this.istGestartet;
|
return this.istGestartet;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTrumpf(Kartenfarbe kf) {
|
|
||||||
Stich s = (Stich) this.stiche.get(0);
|
|
||||||
s.setTurmpfFarbe(kf);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean istSpielBeendet() {
|
public boolean istSpielBeendet() {
|
||||||
return this.istBeendet;
|
return this.istBeendet;
|
||||||
}
|
}
|
||||||
|
@ -236,21 +216,18 @@ public class Spiel implements Serializable {
|
||||||
return this.runde;
|
return this.runde;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void austeilen() {
|
public void mischen() {
|
||||||
this.kartenstapel.mischen();
|
|
||||||
for (int i = 0; i < this.runde; i++) {
|
|
||||||
for (Spieler s : this.spieler) {
|
|
||||||
Karte k = this.kartenstapel.getObersteKarte();
|
|
||||||
if (k instanceof Magierkarte) {
|
|
||||||
s.addKarte(((Magierkarte) k));
|
|
||||||
} else if (k instanceof Zahlenkarte) {
|
|
||||||
s.addKarte(((Zahlenkarte) k));
|
|
||||||
} else {
|
|
||||||
s.addKarte((Narrenkarte) k);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public void austeilen() {
|
||||||
|
|
||||||
|
// Spieler 1 bekommt karten
|
||||||
|
|
||||||
|
// Spieler 2 bekommt Karten
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// letzer Spieler bekommt Karten
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,42 +245,20 @@ public class Spiel implements Serializable {
|
||||||
|
|
||||||
private void erstelleStiche(int runde) {
|
private void erstelleStiche(int runde) {
|
||||||
for (int i = 0; i < runde; i++) {
|
for (int i = 0; i < runde; i++) {
|
||||||
this.stiche.add(new Stich(this.spieler.size()));
|
this.stiche.put(i + 1, new Stich(this.spieler.size()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
private void ermittleGewinner(Stich stich) {
|
||||||
* private void ermittleGewinner(Stich stich) {
|
stich.getKarten();
|
||||||
* stich.getKarten();
|
}
|
||||||
* }
|
|
||||||
*/
|
|
||||||
|
|
||||||
private void updateSpielerAmZug() {
|
private void updateSpielerAmZug() {
|
||||||
if (this.spieler.size() >= 1) {
|
if (this.spieler.size() >= 1) {
|
||||||
this.spielerAmZug = this.spieler.get(0);
|
this.spielerAmZug = (Spieler) this.spieler.values().toArray()[0];
|
||||||
} else {
|
} else {
|
||||||
this.spielerAmZug = null;
|
this.spielerAmZug = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSpielerList(Spieler gewinner) {
|
}
|
||||||
ArrayList<Spieler> temp = new ArrayList<>(this.spieler.size());
|
|
||||||
int start = 0;
|
|
||||||
for (int i = 0; i < this.spieler.size(); i++) {
|
|
||||||
if (this.spieler.get(i) == gewinner) {
|
|
||||||
start = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = start; i < this.spieler.size(); i++) {
|
|
||||||
temp.add(this.spieler.get(i));
|
|
||||||
}
|
|
||||||
for (int i = 0; i < start; i++) {
|
|
||||||
temp.add(this.spieler.get(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
this.spieler = temp;
|
|
||||||
this.spielerAmZug = temp.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -6,6 +6,96 @@ written on: 10 / 10 / 2023 at: 21:17
|
||||||
*/
|
*/
|
||||||
package Test.Domain.Block;
|
package Test.Domain.Block;
|
||||||
|
|
||||||
public class BlockTest {
|
import Domain.Block.Block;
|
||||||
|
import Domain.Block.Blockeintrag;
|
||||||
|
import Domain.Block.Blockzeile;
|
||||||
|
import Domain.Enums.Geschlecht;
|
||||||
|
import Facade.Spiel;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
}
|
import static junit.framework.TestCase.assertEquals;
|
||||||
|
import static junit.framework.TestCase.assertTrue;
|
||||||
|
|
||||||
|
public class BlockTest {
|
||||||
|
Block block = new Block();
|
||||||
|
Blockeintrag b1 = new Blockeintrag(20,0,null);
|
||||||
|
Blockeintrag b2 = new Blockeintrag(30,1,null);
|
||||||
|
Blockeintrag b3 = new Blockeintrag(40,2,null);
|
||||||
|
Blockeintrag b4 = new Blockeintrag(20,0,null);
|
||||||
|
Blockeintrag b5 = new Blockeintrag(30,1,null);
|
||||||
|
Blockeintrag b6 = new Blockeintrag(40,2,null);
|
||||||
|
|
||||||
|
Blockzeile z1 = new Blockzeile(1,b1);
|
||||||
|
Blockzeile z2 = new Blockzeile(2,b2);
|
||||||
|
Blockzeile z3 = new Blockzeile(3, b3);
|
||||||
|
Blockzeile z4 = new Blockzeile(1,b1);
|
||||||
|
Blockzeile z5 = new Blockzeile(2,b2);
|
||||||
|
Blockzeile z6 = new Blockzeile(3, b3);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testet die Methode addZeile in der Block-Klasse.
|
||||||
|
* Überprüft, ob die Anzahl der Zeilen im Block nach dem Hinzufügen korrekt ist
|
||||||
|
* und ob die hinzugefügte Zeile an der richtigen Position im Datenarray steht.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void addZeileTest() {
|
||||||
|
block.addZeile(z1);
|
||||||
|
block.addZeile(z2);
|
||||||
|
block.addZeile(z3);
|
||||||
|
|
||||||
|
z1.addEintrag(b1);
|
||||||
|
z1.addEintrag(b2);
|
||||||
|
z1.addEintrag(b3);
|
||||||
|
z2.addEintrag(b1);
|
||||||
|
z2.addEintrag(b2);
|
||||||
|
z2.addEintrag(b3);
|
||||||
|
z3.addEintrag(b1);
|
||||||
|
z3.addEintrag(b2);
|
||||||
|
z3.addEintrag(b3);
|
||||||
|
|
||||||
|
assertEquals(3,block.getDaten().length);
|
||||||
|
assertTrue((z1 == block.getDaten()[0]) &&
|
||||||
|
(z2 == block.getDaten()[1]) && (z3 == block.getDaten()[2]));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testet die Methode getDaten der Klasse Block. Überprüft, ob die Daten im
|
||||||
|
* Block korrekt abgerufen werden können.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void getDatenTest() {
|
||||||
|
block.addZeile(z4);
|
||||||
|
block.addZeile(z5);
|
||||||
|
block.addZeile(z6);
|
||||||
|
|
||||||
|
z1.addEintrag(b4);
|
||||||
|
z1.addEintrag(b5);
|
||||||
|
z1.addEintrag(b6);
|
||||||
|
z2.addEintrag(b4);
|
||||||
|
z2.addEintrag(b5);
|
||||||
|
z2.addEintrag(b6);
|
||||||
|
z3.addEintrag(b4);
|
||||||
|
z3.addEintrag(b5);
|
||||||
|
z3.addEintrag(b6);
|
||||||
|
|
||||||
|
assertTrue((block.getDaten()[0].getDaten()[0].getPunkte() ==20)
|
||||||
|
&& (block.getDaten()[0].getDaten()[0].getStiche() == 0)
|
||||||
|
&& (block.getDaten()[1].getDaten()[0].getPunkte() == 30)
|
||||||
|
&& (block.getDaten()[1].getDaten()[0].getStiche() == 1)
|
||||||
|
&& (block.getDaten()[2].getDaten()[0].getPunkte() == 40)
|
||||||
|
&& (block.getDaten()[2].getDaten()[0].getStiche() == 2));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testet die Methode getDaten der Klasse Block für einen leeren Block.
|
||||||
|
* Überprüft, ob für einen leeren Block ein leeres Datenarray zurückgegeben
|
||||||
|
* wird.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void getDatenTestLeererBlock(){
|
||||||
|
Block block2 = new Block();
|
||||||
|
assertEquals(0, block2.getDaten().length);
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,39 @@ written on: 10 / 10 / 2023 at: 21:17
|
||||||
*/
|
*/
|
||||||
package Test.Domain.Block;
|
package Test.Domain.Block;
|
||||||
|
|
||||||
public class BlockeintragTest {
|
import Domain.Block.Blockeintrag;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static junit.framework.TestCase.assertEquals;
|
||||||
|
import static org.junit.Assert.assertThrows;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
public class BlockeintragTest {
|
||||||
|
@Test
|
||||||
|
public void getPunkteTest(){
|
||||||
|
Blockeintrag eintrag = new Blockeintrag(20,0,null);
|
||||||
|
assertTrue((eintrag.getPunkte() == 20));
|
||||||
|
eintrag.setPunkte(30);
|
||||||
|
assertTrue((eintrag.getPunkte() == 30));
|
||||||
|
eintrag.setPunkte(40);
|
||||||
|
assertTrue((eintrag.getPunkte()== 40));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getStiche() {
|
||||||
|
Blockeintrag eintrag = new Blockeintrag(30,1,null);
|
||||||
|
assertEquals(1, eintrag.getStiche());
|
||||||
|
eintrag.setStiche(2);
|
||||||
|
assertEquals(2, eintrag.getStiche());
|
||||||
|
eintrag.setStiche(3);
|
||||||
|
assertEquals(3, eintrag.getStiche());
|
||||||
|
}
|
||||||
|
|
||||||
|
//Exception Test hier schreiben
|
||||||
|
@Test
|
||||||
|
public void testNegativeStiche() throws Exception {
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> new Blockeintrag(50, -3, null));
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> new Blockeintrag(30,-1, null));
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> new Blockeintrag(10, -4, null));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,102 @@ written on: 10 / 10 / 2023 at: 21:17
|
||||||
*/
|
*/
|
||||||
package Test.Domain.Block;
|
package Test.Domain.Block;
|
||||||
|
|
||||||
public class BlockzeileTest {
|
import Domain.Block.Block;
|
||||||
|
import Domain.Block.Blockeintrag;
|
||||||
|
import Domain.Block.Blockzeile;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
}
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class BlockzeileTest {
|
||||||
|
Block b = new Block();
|
||||||
|
Blockeintrag e1 = new Blockeintrag(20,0,null);
|
||||||
|
Blockeintrag e2 = new Blockeintrag(30,1,null);
|
||||||
|
Blockeintrag e3 = new Blockeintrag(40,2,null);
|
||||||
|
Blockeintrag e4 = new Blockeintrag(50,2, null);
|
||||||
|
Blockeintrag e5 = new Blockeintrag(50, 2, null);
|
||||||
|
Blockeintrag e6 = new Blockeintrag(40, 1, null);
|
||||||
|
Blockzeile z1 = new Blockzeile(1, e1);
|
||||||
|
Blockzeile z2 = new Blockzeile(2, e2);
|
||||||
|
Blockzeile z3 = new Blockzeile(3, e3);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testet addEintrag
|
||||||
|
* Anmerkung assertEquals überprüft nicht ob der Eintrag richtig ist sondern ob das
|
||||||
|
* Objekt eintrag1 im array liegt Eintrag wird in Blockeintrag auf Richtigkeit
|
||||||
|
* getestet
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void addEintragTest() {
|
||||||
|
Blockeintrag[] daten;
|
||||||
|
|
||||||
|
//1 Eintrag
|
||||||
|
z1.addEintrag(e1);
|
||||||
|
z1.addEintrag(e2);
|
||||||
|
daten = z1.getDaten();
|
||||||
|
assertEquals("addEintrag: 1 Eintrag", 3, daten.length);
|
||||||
|
assertEquals("addEintrag: 1 Eintrag", e1, daten[1]);
|
||||||
|
assertEquals("addEintrag: 1 Eintrag", e2, daten[2]);
|
||||||
|
|
||||||
|
//2 Eintrag
|
||||||
|
z1.addEintrag(e3);
|
||||||
|
z1.addEintrag(e4);
|
||||||
|
daten = z1.getDaten();
|
||||||
|
assertEquals("addEintrag: 2 Eintrag", 5, daten.length);
|
||||||
|
assertEquals("addEintrag: 2 Eintrag", e3, daten[3]);
|
||||||
|
assertEquals("addEintrag: 2 Eintrag", e4, daten[4]);
|
||||||
|
|
||||||
|
//3 Eintrag
|
||||||
|
z1.addEintrag(e5);
|
||||||
|
z1.addEintrag(e6);
|
||||||
|
daten = z1.getDaten();
|
||||||
|
assertEquals("addEintrag: 3 Eintrag", 7, daten.length);
|
||||||
|
assertEquals("addEintrag: 3 Eintrag", e5, daten[5]);
|
||||||
|
assertEquals("addEintrag: 3 Eintrag", e6, daten[6]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Überprüfung ob Daten korrekt zurückgegeben werden
|
||||||
|
@Test
|
||||||
|
public void getDatenTest() {
|
||||||
|
|
||||||
|
z1.addEintrag(e1);
|
||||||
|
z1.addEintrag(e2);
|
||||||
|
|
||||||
|
Blockeintrag[] daten = z1.getDaten();
|
||||||
|
|
||||||
|
assertEquals(3, daten.length);
|
||||||
|
assertEquals(e1, daten[1]);
|
||||||
|
assertEquals(e2, daten[2]);
|
||||||
|
|
||||||
|
z1.addEintrag(null);
|
||||||
|
Blockeintrag[] daten1 = z1.getDaten();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void duplikateRunde() throws Exception{
|
||||||
|
Blockeintrag e1 = new Blockeintrag(30,1,null);
|
||||||
|
Blockeintrag e2 = new Blockeintrag(20,0,null);
|
||||||
|
|
||||||
|
Blockzeile z1 = new Blockzeile(4, e1);
|
||||||
|
Blockzeile z2 = new Blockzeile(4, e2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void invalidRunde() throws Exception{
|
||||||
|
Blockzeile z4 = new Blockzeile(-1, e1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void invalidRunde2() throws Exception{
|
||||||
|
Blockzeile z5 = new Blockzeile(-3, e2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getRundenNummer(){
|
||||||
|
assertEquals(3, z3.getRundenNummer());
|
||||||
|
z3.setRundenNummer(4);
|
||||||
|
assertEquals(4, z3.getRundenNummer());
|
||||||
|
z3.setRundenNummer(5);
|
||||||
|
assertEquals(5, z3.getRundenNummer());
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,41 +7,33 @@ written on: 10 / 10 / 2023 at: 21:18
|
||||||
package Test.Domain.Karten;
|
package Test.Domain.Karten;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import Domain.Enums.Kartenfarbe;
|
|
||||||
import Domain.Karten.Magierkarte;
|
import Domain.Karten.Magierkarte;
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author sellm
|
|
||||||
* @version
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class MagierkarteTest {
|
public class MagierkarteTest {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void vierMagier() {
|
public void vierMagier() {
|
||||||
Magierkarte m1 = new Magierkarte(Kartenfarbe.MENSCH, "Zauberer");
|
Magierkarte m1 = new Magierkarte(1);
|
||||||
Magierkarte m2 = new Magierkarte(Kartenfarbe.ELF, "Zauberer");
|
Magierkarte m2 = new Magierkarte(2);
|
||||||
Magierkarte m3 = new Magierkarte(Kartenfarbe.RIESE, "Zauberer");
|
Magierkarte m3 = new Magierkarte(3);
|
||||||
Magierkarte m4 = new Magierkarte(Kartenfarbe.ZWERG, "Zauberer");
|
Magierkarte m4 = new Magierkarte(4);
|
||||||
|
|
||||||
assertEquals(Kartenfarbe.MENSCH, m1.getKartenfarbe());
|
|
||||||
assertEquals("Zauberer", m1.getBezeichnung());
|
assertEquals("Zauberer", m1.getName());
|
||||||
assertEquals("BLAU", Kartenfarbe.MENSCH.getFarbe());
|
assertTrue(1 == m1.getId());
|
||||||
assertEquals(Kartenfarbe.ELF, m2.getKartenfarbe());
|
assertEquals("Zauberer", m2.getName());
|
||||||
assertEquals("Zauberer", m2.getBezeichnung());
|
assertTrue(2 == m2.getId());
|
||||||
assertEquals("GRÜN", Kartenfarbe.ELF.getFarbe());
|
assertEquals("Zauberer", m3.getName());
|
||||||
assertEquals(Kartenfarbe.RIESE, m3.getKartenfarbe());
|
assertTrue(3 == m3.getId());
|
||||||
assertEquals("Zauberer", m3.getBezeichnung());
|
assertEquals("Zauberer", m4.getName());
|
||||||
assertEquals("GELB", Kartenfarbe.RIESE.getFarbe());
|
assertTrue(4 == m4.getId());
|
||||||
assertEquals(Kartenfarbe.ZWERG, m4.getKartenfarbe());
|
|
||||||
assertEquals("Zauberer", m4.getBezeichnung());
|
|
||||||
assertEquals("ROT", Kartenfarbe.ZWERG.getFarbe());
|
|
||||||
|
|
||||||
assertEquals("Zauberer: MENSCH (BLAU).", m1.toString());
|
assertEquals("ID 1: Zauberer", m1.toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,34 +7,33 @@ written on: 10 / 10 / 2023 at: 21:18
|
||||||
package Test.Domain.Karten;
|
package Test.Domain.Karten;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import Domain.Enums.Kartenfarbe;
|
|
||||||
import Domain.Karten.Narrenkarte;
|
import Domain.Karten.Narrenkarte;
|
||||||
|
|
||||||
public class NarrenkarteTest {
|
public class NarrenkarteTest {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void vierNarren() {
|
public void vierNarren() {
|
||||||
Narrenkarte n1 = new Narrenkarte(Kartenfarbe.MENSCH, "Narr");
|
Narrenkarte n1 = new Narrenkarte(5);
|
||||||
Narrenkarte n2 = new Narrenkarte(Kartenfarbe.ELF, "Narr");
|
Narrenkarte n2 = new Narrenkarte(6);
|
||||||
Narrenkarte n3 = new Narrenkarte(Kartenfarbe.RIESE, "Narr");
|
Narrenkarte n3 = new Narrenkarte(7);
|
||||||
Narrenkarte n4 = new Narrenkarte(Kartenfarbe.ZWERG, "Narr");
|
Narrenkarte n4 = new Narrenkarte(8);
|
||||||
|
|
||||||
assertEquals(n1.getKartenfarbe(), Kartenfarbe.MENSCH);
|
assertEquals(n1.getName(), "Narr");
|
||||||
assertEquals(n2.getKartenfarbe(), Kartenfarbe.ELF);
|
assertTrue(5 == n1.getId());
|
||||||
assertEquals(n3.getKartenfarbe(), Kartenfarbe.RIESE);
|
assertEquals(n2.getName(), "Narr");
|
||||||
assertEquals(n4.getKartenfarbe(), Kartenfarbe.ZWERG);
|
assertTrue(6 == n2.getId());
|
||||||
|
assertEquals(n3.getName(), "Narr");
|
||||||
|
assertTrue(7 == n3.getId());
|
||||||
|
assertEquals(n4.getName(), "Narr");
|
||||||
|
assertTrue(8 == n4.getId());
|
||||||
|
|
||||||
|
assertEquals("ID 5: Narr", n1.toString());
|
||||||
|
|
||||||
assertEquals(n1.getBezeichnung(), "Narr");
|
|
||||||
assertEquals(n2.getBezeichnung(), "Narr");
|
|
||||||
assertEquals(n3.getBezeichnung(), "Narr");
|
|
||||||
assertEquals(n4.getBezeichnung(), "Narr");
|
|
||||||
|
|
||||||
assertEquals(Kartenfarbe.MENSCH.getFarbe(), "BLAU");
|
|
||||||
assertEquals(Kartenfarbe.ELF.getFarbe(), "GRÜN");
|
|
||||||
assertEquals(Kartenfarbe.RIESE.getFarbe(), "GELB");
|
|
||||||
assertEquals(Kartenfarbe.ZWERG.getFarbe(), "ROT");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,81 +7,81 @@ written on: 10 / 10 / 2023 at: 21:18
|
||||||
package Test.Domain.Karten;
|
package Test.Domain.Karten;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
|
||||||
import Domain.Enums.Kartenfarbe;
|
import Domain.Enums.Kartenfarbe;
|
||||||
|
import Domain.Karten.Karte;
|
||||||
import Domain.Karten.Zahlenkarte;
|
import Domain.Karten.Zahlenkarte;
|
||||||
|
|
||||||
public class ZahlenkarteTest {
|
public class ZahlenkarteTest {
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Objekterzeugung der HashMap und der Zahlenkarten
|
|
||||||
* kann auch in ein @BeforeAll eingetragen werden.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der @Test erzeugt Zahlenkarten von 1 bis 13. prüft aber
|
|
||||||
* nur zwei Positionen in der HashMap, um die
|
|
||||||
* Objektdaten zu validieren.
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void dreizehnZahlenkartenMENSCH() {
|
public void zahlenkartentesten() {
|
||||||
|
|
||||||
HashMap<Integer, Zahlenkarte> zm = new HashMap<Integer, Zahlenkarte>();
|
HashMap<Integer, Karte> zk = new HashMap<>();
|
||||||
Zahlenkarte zahlenkarte = null;
|
|
||||||
for (int i = 1; i <= 13; i++) {
|
for (int i = 1; i <= 8; i++) {
|
||||||
zahlenkarte = new Zahlenkarte(Kartenfarbe.MENSCH, i);
|
zk.put(i, null);
|
||||||
zm.put(i, zahlenkarte);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assertEquals(zm.get(7).getKartenNummer(), 7);
|
for (int i = 9; i <= 21; i++) {
|
||||||
|
zk.put(i, new Zahlenkarte(i, Kartenfarbe.MENSCH, i - 8));
|
||||||
assertEquals(zm.get(4).getKartenNummer(), 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void dreizehnZahlenkartenElf() {
|
|
||||||
HashMap<Integer, Zahlenkarte> ze = new HashMap<Integer, Zahlenkarte>();
|
|
||||||
Zahlenkarte zahlenkarte = null;
|
|
||||||
for (int i = 1; i <= 13; i++) {
|
|
||||||
zahlenkarte = new Zahlenkarte(Kartenfarbe.ELF, i);
|
|
||||||
ze.put(i, zahlenkarte);
|
|
||||||
}
|
}
|
||||||
|
for (int i = 22; i <= 34; i++) {
|
||||||
assertEquals(ze.get(7).getKartenNummer(), 7);
|
zk.put(i, new Zahlenkarte(i, Kartenfarbe.ELF, i - 21));
|
||||||
|
|
||||||
assertEquals(ze.get(4).getKartenNummer(), 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void dreizehnZahlenkartenZWERG() {
|
|
||||||
HashMap<Integer, Zahlenkarte> zz = new HashMap<Integer, Zahlenkarte>();
|
|
||||||
Zahlenkarte zahlenkarte = null;
|
|
||||||
for (int i = 1; i <= 13; i++) {
|
|
||||||
zahlenkarte = new Zahlenkarte(Kartenfarbe.ZWERG, i);
|
|
||||||
zz.put(i, zahlenkarte);
|
|
||||||
}
|
}
|
||||||
|
for (int i = 35; i <= 47; i++) {
|
||||||
assertEquals(zz.get(7).getKartenNummer(), 7);
|
zk.put(i, new Zahlenkarte(i, Kartenfarbe.RIESE, i - 34));
|
||||||
|
|
||||||
assertEquals(zz.get(4).getKartenNummer(), 4);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void dreizehnZahlenkartenRIESE() {
|
|
||||||
HashMap<Integer, Zahlenkarte> zr = new HashMap<Integer, Zahlenkarte>();
|
|
||||||
Zahlenkarte zahlenkarte = null;
|
|
||||||
for (int i = 1; i <= 13; i++) {
|
|
||||||
zahlenkarte = new Zahlenkarte(Kartenfarbe.RIESE, i);
|
|
||||||
zr.put(i, zahlenkarte);
|
|
||||||
}
|
}
|
||||||
|
for (int i = 48; i <= 60; i++) {
|
||||||
|
zk.put(i, new Zahlenkarte(i, Kartenfarbe.ZWERG, i - 47));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Testen der Charakterkarten MENSCH
|
||||||
|
assertEquals(1, ((Zahlenkarte) zk.get(9)).getKartenNummer());
|
||||||
|
assertEquals(13, ((Zahlenkarte) zk.get(21)).getKartenNummer());
|
||||||
|
assertEquals(5, ((Zahlenkarte) zk.get(13)).getKartenNummer());
|
||||||
|
|
||||||
|
assertEquals(17, ((Zahlenkarte) zk.get(17)).getId());
|
||||||
|
|
||||||
|
assertTrue(Kartenfarbe.MENSCH == ((Zahlenkarte) zk.get(17)).getFarbe());
|
||||||
|
|
||||||
|
// Testen der Charakterkarten ELF
|
||||||
|
assertEquals(1, ((Zahlenkarte) zk.get(22)).getKartenNummer());
|
||||||
|
assertEquals(13, ((Zahlenkarte) zk.get(34)).getKartenNummer());
|
||||||
|
assertEquals(11, ((Zahlenkarte) zk.get(32)).getKartenNummer());
|
||||||
|
|
||||||
|
assertEquals(28, ((Zahlenkarte) zk.get(28)).getId());
|
||||||
|
|
||||||
|
assertTrue(Kartenfarbe.ELF == ((Zahlenkarte) zk.get(28)).getFarbe());
|
||||||
|
|
||||||
|
// Testen der Charakterkarten RIESE
|
||||||
|
assertEquals(1, ((Zahlenkarte) zk.get(35)).getKartenNummer());
|
||||||
|
assertEquals(13, ((Zahlenkarte) zk.get(47)).getKartenNummer());
|
||||||
|
assertEquals(3, ((Zahlenkarte) zk.get(37)).getKartenNummer());
|
||||||
|
|
||||||
|
assertEquals(41, ((Zahlenkarte) zk.get(41)).getId());
|
||||||
|
|
||||||
|
assertTrue(Kartenfarbe.RIESE == ((Zahlenkarte) zk.get(41)).getFarbe());
|
||||||
|
|
||||||
|
// Testen der Charakterkarten ZWERG
|
||||||
|
assertEquals(1, ((Zahlenkarte) zk.get(48)).getKartenNummer());
|
||||||
|
assertEquals(13, ((Zahlenkarte) zk.get(60)).getKartenNummer());
|
||||||
|
assertEquals(6, ((Zahlenkarte) zk.get(53)).getKartenNummer());
|
||||||
|
|
||||||
|
assertEquals(53, ((Zahlenkarte) zk.get(53)).getId());
|
||||||
|
|
||||||
|
assertTrue(Kartenfarbe.ZWERG == ((Zahlenkarte) zk.get(53)).getFarbe());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
assertEquals(zr.get(9).getKartenNummer(), 9);
|
|
||||||
|
|
||||||
assertEquals(zr.get(2).getKartenNummer(), 2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,8 @@ package UI;
|
||||||
import Facade.Spiel;
|
import Facade.Spiel;
|
||||||
import Domain.Spieler;
|
import Domain.Spieler;
|
||||||
import Domain.Enums.Geschlecht;
|
import Domain.Enums.Geschlecht;
|
||||||
import Domain.Enums.Kartenfarbe;
|
import Domain.Exceptions.EmptyListException;
|
||||||
import Domain.Exceptions.*;
|
import Domain.Exceptions.SpielerNotFoundException;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
@ -72,59 +72,8 @@ public class SpielCLI {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void spielStarten() {
|
private void spielStarten() {
|
||||||
|
this.spiel.starteSpiel();
|
||||||
String[] temp = this.spiel.getSpielerAmZug();
|
System.out.println("Noch nicht implementiert.");
|
||||||
System.out.println(temp[0] + " ist am Zug.");
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.spiel.starteSpiel();
|
|
||||||
} catch (MagierTrumpfException mte) {
|
|
||||||
|
|
||||||
// Karten werden verteilt und trumpf wird festgelegt
|
|
||||||
|
|
||||||
System.out.println(mte.getMessage());
|
|
||||||
System.out.println(temp[0] + " darf den Trumpf aussuchen.\n");
|
|
||||||
boolean valid = false;
|
|
||||||
while (!valid) {
|
|
||||||
System.out.println("[1] Elf, [2] Mensch, [3] Zwerg, [4] Riese ");
|
|
||||||
int choice;
|
|
||||||
try {
|
|
||||||
choice = Integer.parseInt(sc.nextLine());
|
|
||||||
switch (choice) {
|
|
||||||
case 1:
|
|
||||||
spiel.setTrumpf(Kartenfarbe.ELF);
|
|
||||||
valid = true;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
spiel.setTrumpf(Kartenfarbe.MENSCH);
|
|
||||||
valid = true;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
spiel.setTrumpf(Kartenfarbe.ZWERG);
|
|
||||||
valid = true;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
spiel.setTrumpf(Kartenfarbe.RIESE);
|
|
||||||
valid = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
System.out.println("Diese Auswahl ist nicht erlaub");
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (NumberFormatException nfe) {
|
|
||||||
System.out.println("Dies war keine Nummer");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (NarrenTrumpfException nte) {
|
|
||||||
System.out.println(nte.getMessage());
|
|
||||||
System.out.println("Diese Runde wird ohne Trumpf gespielt.");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void treffeVorhersage() {
|
|
||||||
System.out.println("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addSpieler() {
|
private void addSpieler() {
|
||||||
|
|
Loading…
Reference in New Issue