From 1b3decf0509d9292fb769b4e4bb47d551cdff9f1 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Thu, 12 Oct 2023 08:51:24 +0200 Subject: [PATCH] Diverse Anpassungen in Spiel, Karte, Magierkarte, Narrenkarte, zahlenkarte und SpielCLI --- Domain/Karten/Karte.java | 31 +++++++------- Domain/Karten/Magierkarte.java | 34 +++++++++------ Domain/Karten/Narrenkarte.java | 33 +++++++++------ Domain/Karten/Zahlenkarte.java | 20 +++++++++ Domain/Stich.java | 75 ++++++++++++++++++++++++++++++++++ Facade/Spiel.java | 29 ++++++++++++- UI/SpielCLI.java | 1 + 7 files changed, 182 insertions(+), 41 deletions(-) create mode 100644 Domain/Stich.java diff --git a/Domain/Karten/Karte.java b/Domain/Karten/Karte.java index 0e5b203..8144eea 100644 --- a/Domain/Karten/Karte.java +++ b/Domain/Karten/Karte.java @@ -9,28 +9,31 @@ package Domain.Karten; public abstract class Karte { // Statische Konstanten - + // Statische Attribute - private static int id_card = 0; + private int id; // Attribute des Ojektes - - + // Konstruktoren public Karte() { - if (id_card < 60) { - id_card++; - } + } + + public Karte(int id) { + this.id = id; + } + // Statische Methoden - public static int getId_card() { - return id_card; - } + // Getter und Setter - - + + public int getId() { + return this.id; + } + // @Overrides - + // Public Methoden (öffentliche Methoden) - + // Private Methoden (Hilfsmethoden) } diff --git a/Domain/Karten/Magierkarte.java b/Domain/Karten/Magierkarte.java index bbd551f..69d454f 100644 --- a/Domain/Karten/Magierkarte.java +++ b/Domain/Karten/Magierkarte.java @@ -10,49 +10,57 @@ import Domain.Enums.Kartenfarbe; public class Magierkarte extends Karte { - // Statische Konstanten - + // Statische Attribute - + // Attribute des Objekts private Kartenfarbe farbe; private String bezeichnung; // Konstruktoren - + public Magierkarte() { super(); } - + public Magierkarte(Kartenfarbe farbe, String bezeichnung) { super(); setFarbe(farbe); setBezeichnung(bezeichnung); } - + // Statische Methoden - + // Getter und Setter - + public void setFarbe(Kartenfarbe farbe) { this.farbe = farbe; } + public Kartenfarbe getFarbe() { return this.farbe; } + public int getId() { - return Karte.getId_card(); + return this.getId(); } + public void setBezeichnung(String bezeichnung) { this.bezeichnung = bezeichnung; } - public String getBezeichnung () { + + public String getBezeichnung() { return this.bezeichnung; } // @Overrides - + + @Override + public String toString() { + return "Magierkarte [ID: " + this.getId() + " ]"; + } + // Public Methoden - + // Private Methoden - + } diff --git a/Domain/Karten/Narrenkarte.java b/Domain/Karten/Narrenkarte.java index 293ebbd..4cfb3b4 100644 --- a/Domain/Karten/Narrenkarte.java +++ b/Domain/Karten/Narrenkarte.java @@ -11,47 +11,54 @@ import Domain.Enums.Kartenfarbe; public class Narrenkarte extends Karte { // Statische Konstanten - + // Statische Attribute - + // Attribute des Objekts private Kartenfarbe farbe; private String bezeichnung; // Konstruktoren - - public Narrenkarte() { - super(); + + public Narrenkarte(int id) { + super(id); } - + public Narrenkarte(Kartenfarbe farbe, String bezeichnung) { super(); setFarbe(farbe); setBezeichnung(bezeichnung); } // Statische Methoden - + // Getter und Setter public int getId() { - return Karte.getId_card(); + return this.getId(); } - + public void setFarbe(Kartenfarbe farbe) { this.farbe = farbe; } + public Kartenfarbe getFarbe() { return this.farbe; } - + public void setBezeichnung(String bezeichnung) { this.bezeichnung = bezeichnung; } + public String getBezeichnung() { return this.bezeichnung; } // @Overrides - + + @Override + public String toString() { + return "Narrenkarte [ID: " + this.getId() + " ]"; + } + // Public Methoden - + // Private Methoden - + } diff --git a/Domain/Karten/Zahlenkarte.java b/Domain/Karten/Zahlenkarte.java index 9f52db5..8972761 100644 --- a/Domain/Karten/Zahlenkarte.java +++ b/Domain/Karten/Zahlenkarte.java @@ -19,11 +19,18 @@ public class Zahlenkarte extends Karte { /*------------------------------------------*/ // Attribute jedes Objektes /*------------------------------------------*/ + private int wert; /*------------------------------------------*/ // Konstruktoren (default und spezifische) /*------------------------------------------*/ + public Zahlenkarte() { + } + + public Zahlenkarte(int wert) { + setWert(wert); + } /*------------------------------------------*/ // statische Methoden /*------------------------------------------*/ @@ -32,10 +39,23 @@ public class Zahlenkarte extends Karte { // Getter und Setter /*------------------------------------------*/ + public int getWert() { + return this.wert; + } + + public void setWert(int wert) { + this.wert = wert; + } + /*------------------------------------------*/ // @Overrides /*------------------------------------------*/ + @Override + public String toString() { + return "Zahlenkarte [Wert: " + getWert() + ", ID: " + this.getId() + " ]"; + } + /*------------------------------------------*/ // öffentliche Methodes /*------------------------------------------*/ diff --git a/Domain/Stich.java b/Domain/Stich.java new file mode 100644 index 0000000..6259bc0 --- /dev/null +++ b/Domain/Stich.java @@ -0,0 +1,75 @@ +/* +============================================================ +This is the "Stich" file from Author: Philipp Kotte +written on: 11 / 10 / 2023 at: 20:25 +============================================================ +*/ +package Domain; + +import Domain.Karten.Karte; + +public class Stich { + /*------------------------------------------*/ + // statische Konstanten + /*------------------------------------------*/ + + /*------------------------------------------*/ + // statische Attribute(zB. zähler) + /*------------------------------------------*/ + + /*------------------------------------------*/ + // Attribute jedes Objektes + /*------------------------------------------*/ + private Karte[] karten; + /*------------------------------------------*/ + // Konstruktoren (default und spezifische) + /*------------------------------------------*/ + + public Stich() { + + } + + public Stich(Karte[] karten) { + setKarten(karten); + + } + + /*------------------------------------------*/ + // statische Methoden + /*------------------------------------------*/ + + /*------------------------------------------*/ + // Getter und Setter + /*------------------------------------------*/ + + public void setKarten(Karte[] karten) { + this.karten = karten; + } + + public Karte[] getKarten() { + return this.karten; + } + + /*------------------------------------------*/ + // @Overrides + /*------------------------------------------*/ + + @Override + public String toString() { + String text = ""; + for (int i = 0; i < this.karten.length; i++) { + text += this.karten[i].toString(); + } + + return text; + } + + /*------------------------------------------*/ + // öffentliche Methodes + /*------------------------------------------*/ + + /*------------------------------------------*/ + // Hilfsmethoden (privat) + /*------------------------------------------*/ + +} diff --git a/Facade/Spiel.java b/Facade/Spiel.java index 3925d13..b1df1c3 100644 --- a/Facade/Spiel.java +++ b/Facade/Spiel.java @@ -11,8 +11,10 @@ import java.util.HashMap; import Domain.Kartenstapel; import Domain.Spieler; +import Domain.Stich; import Domain.Block.Block; import Domain.Enums.Geschlecht; +import Domain.Karten.Karte; public class Spiel implements Serializable { @@ -107,7 +109,13 @@ public class Spiel implements Serializable { } public void starteSpiel() { - this.istGestartet = true; + // sing genügend Spieler angelegt? + if (this.spieler.size() >= 3 && this.spieler.size() <= 6) { + this.istGestartet = true; + } else { + System.out.println("Es fehlen " + (3 - this.spieler.size()) + " spieler"); + } + // Gameloop? } @@ -141,6 +149,13 @@ public class Spiel implements Serializable { public void austeilen() { + // Spieler 1 bekommt karten + + // Spieler 2 bekommt Karten + // ... + + // letzer Spieler bekommt Karten + } public void ausspielen(int idKarte) { @@ -155,4 +170,16 @@ public class Spiel implements Serializable { // Hilfsmethoden (privat) /*--------------------------------------------------------*/ + private Stich[] erstelleStiche(int runde) { + return new Stich[runde]; + } + + private void ermittleGewinner(Stich stich) { + stich.getKarten(); + } + + private void spieler() { + + } + } \ No newline at end of file diff --git a/UI/SpielCLI.java b/UI/SpielCLI.java index d1cb015..d5ad85d 100644 --- a/UI/SpielCLI.java +++ b/UI/SpielCLI.java @@ -40,6 +40,7 @@ public class SpielCLI { switch (input) { case 1: + this.spiel.starteSpiel(); System.out.println("Noch nicht implementiert."); break; case 2: