diff --git a/Domain/Hand.java b/Domain/Hand.java new file mode 100644 index 0000000..f87aaf7 --- /dev/null +++ b/Domain/Hand.java @@ -0,0 +1,65 @@ +package Domain; + +import Domain.Karten.Karte; + +public class Hand { + + // Statische Konstanten + + // Statische Attribute + + // Attribute der Objekte + private Karte[] aktuelleHand; + // Konstruktoren + public Hand(int runde) { + setAktuelleHand(runde); + } + // Statische Methoden + + // Getter und Setter + public Karte[] getAktuelleHand() { + return this.aktuelleHand; + } + private void setAktuelleHand(int runde) { + this.aktuelleHand = new Karte[runde]; + } + + // Overrides + @Override + public String toString() { + return ""; + } + // Public Methoden + /** + * Zeigt die aktuelle Hand des Spielers an + * @return + */ + public Karte[] zeigeHand() { + return this.aktuelleHand; + } + /** + * Zeigt die höchste Karte auf der Hand des Spielers an + * @return + */ + public Karte höchsteKarte() { + return null; + } + /** + * Zeigt die niedrigste Karte auf der Hand des Spielers an + * @return + */ + public Karte niedrigsteKarte() { + return null; + } + /** + * Ermöglicht die Auswahl einer Karte, die der Spieler + * ausspielen möchte + * @return + */ + public Karte karteAuswählen() { + + return null; + } + // Private Methoden + +} diff --git a/Domain/Karten/Karte.java b/Domain/Karten/Karte.java index 371c2b4..ac10310 100644 --- a/Domain/Karten/Karte.java +++ b/Domain/Karten/Karte.java @@ -8,8 +8,14 @@ package Domain.Karten; public abstract class Karte { + // Statische Konstanten + + // Statische Attribute private static int kartenId = 0; + // Attribute der Objekte (Kann es keine geben, da die Klasse abstrakt ist) + + // Konstruktoren public Karte() { if (kartenId <= 60) { setKartenId(); @@ -18,7 +24,7 @@ public abstract class Karte { throw new RuntimeException("Es darf nur 60 Karten im Spiel geben."); } } - + // Statische Methoden public static int getKartenId() { return kartenId; } @@ -26,7 +32,19 @@ public abstract class Karte { public static void setKartenId() { kartenId++; } + + // Getter und Setter (Kann es auch keine geben) + + // Overrides + @Override + public abstract String toString(); + + // Public Methoden + + // Private Methoden + + - public abstract String getName(); + } diff --git a/Domain/Karten/Magierkarte.java b/Domain/Karten/Magierkarte.java index b193ada..a631e71 100644 --- a/Domain/Karten/Magierkarte.java +++ b/Domain/Karten/Magierkarte.java @@ -50,6 +50,12 @@ public class Magierkarte extends Karte { this.name = name; } + // Overrides + @Override + public String toString() { + return this.name; + } + // public Methoden // private Methoden diff --git a/Domain/Karten/Narrenkarte.java b/Domain/Karten/Narrenkarte.java index b2b8106..2976385 100644 --- a/Domain/Karten/Narrenkarte.java +++ b/Domain/Karten/Narrenkarte.java @@ -42,7 +42,10 @@ public class Narrenkarte extends Karte { return nkAnzahl; } // Overrides - + @Override + public String toString() { + return this.name; + } // Public Methoden // Private Methoden diff --git a/Domain/Karten/Zahlenkarte.java b/Domain/Karten/Zahlenkarte.java index 291acaf..84ff61b 100644 --- a/Domain/Karten/Zahlenkarte.java +++ b/Domain/Karten/Zahlenkarte.java @@ -64,7 +64,10 @@ public class Zahlenkarte extends Karte { this.name = NAME; } // Overrides - + @Override + public String toString() { + return this.name + " " + this.charakter + " " + this.kartenwert; + } // Public Methoden // Private Methoden @@ -96,9 +99,4 @@ public class Zahlenkarte extends Karte { zwergID++; } - @Override - public String getName() { - // TODO Auto-generated method stub - return this.name; - } } diff --git a/Domain/Kartenstapel.java b/Domain/Kartenstapel.java index 7e825fa..46c8956 100644 --- a/Domain/Kartenstapel.java +++ b/Domain/Kartenstapel.java @@ -97,7 +97,7 @@ public class Kartenstapel { public HashMap getStatusGemischt() { HashMap kg = new HashMap<>(); for (int i = 1; i <= 60; i++) { - kg.put(i, ((String) kartengemischt.get(i).getName())); + kg.put(i, ((String) kartengemischt.get(i).toString())); } return kg; } @@ -133,6 +133,7 @@ public class Kartenstapel { * als Ausgangswert genommen. */ public Karte getObersteKarte() { + // Todo: Nur für den Trumpf Karte austeilen = null; if (kartengemischt.get(kartenzählen) != null && kartenzählen <= 60) { @@ -150,6 +151,10 @@ public class Kartenstapel { return austeilen; } + + /** + * + */ // Private Methoden } diff --git a/Domain/Spieler.java b/Domain/Spieler.java index 06855a4..e006fb8 100644 --- a/Domain/Spieler.java +++ b/Domain/Spieler.java @@ -13,26 +13,27 @@ import Domain.Enums.Geschlecht; public class Spieler implements Serializable{ // Statische Konstanten - + private final static String BOTNAME = "Spieler (KI): "; // KI erhält einen konstanten Namen + id(zähler) // Statische Attribute - private static int id = 1; // Interner Zähler für Prüfung max Spieler - private static String botname = "Spieler (KI): "; // KI erhält einen festen Namen + aktuelle id + private static int id = 1; // Interner Zähler für Prüfung max Spieler und für Name KI(BOTNAME + id) // Attribute der Objekte private int spielerID; // Feste SpielerID zur Festlegung der Ref-Variablen private String name; // Name eines Spielers oder fester Name falls Geschlecht.KI private Geschlecht geschlecht; + private Hand hand; private int vorhersage; // Konstruktoren /** * Die Prüfung, ob der @param name leer ist, muss in der Klasse Spiel erfolgen. * Es wird der @param id noch zusätzlich geprüft. - * @param geschlecht + * @param geschlecht wird übergeben, als MinAnforderung */ public Spieler(Geschlecht geschlecht) { if (id <= 6) { if (geschlecht != Geschlecht.KI) { setGeschlecht(geschlecht); setVorhersage(0); + setHand(0); setSpielerID(id); } else { @@ -91,6 +92,12 @@ public class Spieler implements Serializable{ public int getSpielerID() { return this.spielerID; } + public void setHand(int runde) { + this.hand = new Hand(runde); + } + public Hand getHand() { + return this.hand; + } // Overrides // Public Methoden @@ -98,9 +105,10 @@ public class Spieler implements Serializable{ // Private Methoden private void setNeuerBot(Geschlecht geschlecht) { this.spielerID = id; - this.name = botname + id; + this.name = BOTNAME + " " + id; this.geschlecht = geschlecht; - this.vorhersage = 0; + setVorhersage(0); // Nicht zwingend notwendig, aber dient + setHand(0); // der Übersicht aller Attribute. setId(); } diff --git a/Facade/Spiel.java b/Facade/Spiel.java index 618b843..2fa1d3a 100644 --- a/Facade/Spiel.java +++ b/Facade/Spiel.java @@ -6,11 +6,53 @@ written on: 05 / 10 / 2023 at: 23:25 */ package Facade; +import Domain.Spieler; + public class Spiel { - public static int getRunde() { - // TODO Auto-generated method stub - return 0; + // Statische Konstanten + + // Statische Attribute + private static int runde = 0; + + // Attribute der Objekte + private Spieler spielerAmZug; + private boolean istGestartet = false; + private boolean istBeendet = true; + // Konstruktoren + public Spiel() { + setRunde(); + setIstGestartet(true); + setIstBeendet(false); } + // Statische Methoden + public static int getRunde() { + return runde; + } + // Getter und Setter + public void setIstGestartet(boolean wert) { + this.istGestartet = wert; + } + public boolean getIstGestartet() { + return this.istGestartet; + } + public void setIstBeendet(boolean wert) { + this.istBeendet = wert; + } + public boolean getIstBeendet() { + return istBeendet; + } + public Spieler getSpielerAmZug() { + return spielerAmZug; + } + // Overrides + + // Public Methoden + + // Private Methoden + private void setRunde() { + runde++; + } + }