From 1b3decf0509d9292fb769b4e4bb47d551cdff9f1 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Thu, 12 Oct 2023 08:51:24 +0200 Subject: [PATCH 1/5] 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: From e68df5a6bb8479402136424c3232c6e6564d9824 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Sun, 15 Oct 2023 10:13:40 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Spieler=20removen=20m=C3=B6glich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Domain/Spieler.java | 5 +++++ Facade/Spiel.java | 4 ++-- UI/SpielCLI.java | 12 +++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Domain/Spieler.java b/Domain/Spieler.java index 6a9bb8b..99a7c84 100644 --- a/Domain/Spieler.java +++ b/Domain/Spieler.java @@ -168,6 +168,11 @@ public class Spieler implements Serializable { return "ID: " + this.id + " Name: " + this.name + " (" + this.geschlecht + ")"; } + public boolean equals(Spieler spieler) { + return this.id == spieler.getId() && this.geschlecht == spieler.getGeschlecht() + && this.name.equals(spieler.getName()); + } + /*------------------------------------------*/ // öffentliche Methodes /*------------------------------------------*/ diff --git a/Facade/Spiel.java b/Facade/Spiel.java index 86b336e..ddddb99 100644 --- a/Facade/Spiel.java +++ b/Facade/Spiel.java @@ -121,8 +121,8 @@ public class Spiel implements Serializable { public String[] getAlleSpieler() { String[] spieler_text = new String[this.spieler.size()]; - for (int i = 0; i < this.spieler.size() - 1; i++) { - spieler_text[i] = this.spieler.get(i).toString(); + for (int i = 0; i < this.spieler.size(); i++) { + spieler_text[i] = this.spieler.get(i + 1).toString(); } return spieler_text; } diff --git a/UI/SpielCLI.java b/UI/SpielCLI.java index 6e729d7..41ad74c 100644 --- a/UI/SpielCLI.java +++ b/UI/SpielCLI.java @@ -32,7 +32,8 @@ public class SpielCLI { System.out.println("-1- Spiel starten"); System.out.println("-2- Spieler hinzufügen"); System.out.println("-3- Spiel to String"); - System.out.println("-4- Exit"); + System.out.println("-4- Spieler löschen"); + System.out.println("-5- Exit"); int input = 0; @@ -77,6 +78,15 @@ public class SpielCLI { System.out.println(spiel.toString()); break; case 4: + System.out.println("Welchen Spieler willst du löschen?"); + + String[] spieler = spiel.getAlleSpieler(); + for (int i = 0; i < spieler.length; i++) { + System.out.println("[" + (i + 1) + "]: " + spieler[i]); + } + + break; + case 5: break mainloop; case 0: System.out.println("Diese eingabe ist nicht vergeben."); From fedf21b3e4b09573448cd7c11e66b11e698cb9c0 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Thu, 19 Oct 2023 16:44:03 +0200 Subject: [PATCH 3/5] =?UTF-8?q?Spieler=20am=20Zug=20hinzuf=C3=BCgen=20und?= =?UTF-8?q?=20aktualisieren=20vor=20dem=20Spiel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 8196 -> 8196 bytes Domain/Exceptions/EmptyListException.java | 13 ++ Domain/Exceptions/SpielException.java | 65 ++++++++ .../Exceptions/SpielerNotFoundException.java | 15 ++ Domain/Spieler.java | 7 +- Facade/Spiel.java | 52 +++++-- UI/SpielCLI.java | 147 +++++++++++++----- 7 files changed, 243 insertions(+), 56 deletions(-) create mode 100644 Domain/Exceptions/EmptyListException.java create mode 100644 Domain/Exceptions/SpielException.java create mode 100644 Domain/Exceptions/SpielerNotFoundException.java diff --git a/.DS_Store b/.DS_Store index decf7a6645ce0e22dcfdb786509b05a32cb7948e..d111a3bbb1d0d8e301495c41c23888a9352c95d3 100644 GIT binary patch delta 33 pcmZp1XmOa}&&aniU^hP_-)0_xYb=`|@u)IyW|#QRvaynl834S-3c~;Z delta 148 zcmZp1XmOa}&&a= 1) { + this.spielerAmZug = (Spieler) this.spieler.values().toArray()[0]; + } } } \ No newline at end of file diff --git a/UI/SpielCLI.java b/UI/SpielCLI.java index 41ad74c..c40479c 100644 --- a/UI/SpielCLI.java +++ b/UI/SpielCLI.java @@ -10,11 +10,18 @@ package UI; import Facade.Spiel; import Domain.Spieler; import Domain.Enums.Geschlecht; +import Domain.Exceptions.EmptyListException; +import Domain.Exceptions.SpielerNotFoundException; import java.util.Scanner; public class SpielCLI { + private static final String ANSI_RESET = "\u001B[0m"; + private static final String ANSI_GREEN = "\u001B[32m"; + private static final String ANSI_RED = "\u001B[31m"; + public static final String ANSI_BLUE = "\u001B[34m"; + Scanner sc = new Scanner(System.in); private Spiel spiel; @@ -26,14 +33,13 @@ public class SpielCLI { public void hauptmenue() { System.out.println("Hallo Wanderer"); mainloop: while (true) { - System.out.println(""); - System.out.println("Was sillst du tun"); - System.out.println("--------Hauptmenü--------"); - System.out.println("-1- Spiel starten"); - System.out.println("-2- Spieler hinzufügen"); - System.out.println("-3- Spiel to String"); - System.out.println("-4- Spieler löschen"); - System.out.println("-5- Exit"); + print(""); + print("--------Hauptmenü--------"); + print(ANSI_BLUE + "-1-" + ANSI_RESET + " Spiel starten"); + print(ANSI_BLUE + "-2-" + ANSI_RESET + " Spieler hinzufügen"); + print(ANSI_BLUE + "-3-" + ANSI_RESET + " Spiel to String"); + print(ANSI_BLUE + "-4-" + ANSI_RESET + " Spieler löschen"); + print(ANSI_BLUE + "-5-" + ANSI_RESET + " Exit"); int input = 0; @@ -45,46 +51,16 @@ public class SpielCLI { switch (input) { case 1: - this.spiel.starteSpiel(); - System.out.println("Noch nicht implementiert."); + spielStarten(); break; case 2: - System.out.println("Gib den Namen des Spielers an"); - String name = sc.nextLine(); - System.out.println("Gib das Geschlecht an."); - System.out.println("Männlich (M), Weiblich (W), Divers (D), KI (K)"); - String geschlecht = sc.nextLine(); - switch (geschlecht) { - case "W": - spiel.addSpieler(name, Geschlecht.W); - break; - case "M": - spiel.addSpieler(name, Geschlecht.M); - break; - case "D": - spiel.addSpieler(name, Geschlecht.D); - break; - case "K": - spiel.addSpieler(name, Geschlecht.KI); - break; - default: - System.out.println("Diese eingabe ist nicht gültig"); - break; - - } + addSpieler(); break; - case 3: System.out.println(spiel.toString()); break; case 4: - System.out.println("Welchen Spieler willst du löschen?"); - - String[] spieler = spiel.getAlleSpieler(); - for (int i = 0; i < spieler.length; i++) { - System.out.println("[" + (i + 1) + "]: " + spieler[i]); - } - + spielerLöschen(); break; case 5: break mainloop; @@ -95,4 +71,93 @@ public class SpielCLI { System.out.println("auf wiedersehen!"); } + private void spielStarten() { + this.spiel.starteSpiel(); + System.out.println("Noch nicht implementiert."); + } + + private void addSpieler() { + int spieler_anzahl = this.spiel.getAlleSpieler().length; + if (spieler_anzahl <= 5) { + System.out.println("Gib den Namen des Spielers an"); + String name = sc.nextLine(); + System.out.println("Gib das Geschlecht an."); + System.out.println("Männlich (M), Weiblich (W), Divers (D), KI (K)"); + String geschlecht = sc.nextLine(); + switch (geschlecht) { + case "W": + spiel.addSpieler(name, Geschlecht.W); + break; + case "M": + spiel.addSpieler(name, Geschlecht.M); + break; + case "D": + spiel.addSpieler(name, Geschlecht.D); + break; + case "K": + spiel.addSpieler(name, Geschlecht.KI); + break; + default: + System.out.println("Diese eingabe ist nicht gültig"); + break; + + } + + } else { + System.out.println("Die Maximale Spieleranzahl ist erreicht."); + } + + } + + private void spielerLöschen() { + + if (this.spiel.getAlleSpieler().length >= 1) { + System.out.println("Welchen Spieler willst du löschen?"); + System.out.println("Gib die ID des Spielers an."); + + String[] spieler = spiel.getAlleSpieler(); + for (int i = 0; i < spieler.length; i++) { + System.out.println(spieler[i]); + } + + int _id = Integer.parseInt(sc.nextLine()); + System.out.println(_id); + for (String s : spieler) { + if (s.contains("ID: " + _id)) { + System.out.println("Sicher das du " + s + " löschen willst?"); + } + } + boolean valid_choice = false; + while (!valid_choice) { + System.out.println("Ja [j] Nein [n]"); + String wahl = sc.nextLine(); + switch (wahl) { + case "j": + valid_choice = true; + try { + spiel.removeSpieler(_id); + System.out.println("Spieler löschen erfolgreich!"); + } catch (SpielerNotFoundException | EmptyListException | RuntimeException e) { + System.out.println(e.getMessage()); + } + + break; + case "n": + System.out.println("Spieler löschen abgebrochen!"); + valid_choice = true; + break; + default: + System.out.println("Diese Auswhal ist nicht gültig"); + } + } + } else { + System.out.println("Es existieren keine Spieler zum löschen."); + } + + } + + private void print(String message) { + System.out.println(message); + } + } \ No newline at end of file From 8689110670d3fedf68e364917093fe332c1dc8b8 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Fri, 20 Oct 2023 08:52:29 +0200 Subject: [PATCH 4/5] =?UTF-8?q?Kartenvariable=20zu=20Wert=20ge=C3=A4ndert,?= =?UTF-8?q?=20dementsprechend=20methoden=20und=20Tests=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 ++ Domain/Karten/Magierkarte.java | 4 +-- Domain/Karten/Zahlenkarte.java | 14 ++++---- Domain/Kartenstapel.java | 43 +++++++++++++++++++++++++ Facade/Spiel.java | 23 +++++++++++++ RendomTest.java | 17 ++++++++++ Test/Domain/Karten/ZahlenkarteTest.java | 16 ++++----- 7 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 RendomTest.java diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..335f886 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode" +} \ No newline at end of file diff --git a/Domain/Karten/Magierkarte.java b/Domain/Karten/Magierkarte.java index 4a6722e..c0e7038 100644 --- a/Domain/Karten/Magierkarte.java +++ b/Domain/Karten/Magierkarte.java @@ -20,8 +20,8 @@ public class Magierkarte extends Karte { private static int magierkartenanzahl = 0; // Konstruktoren - public Magierkarte() { - super(); + public Magierkarte(int id) { + super(id); } diff --git a/Domain/Karten/Zahlenkarte.java b/Domain/Karten/Zahlenkarte.java index bed702c..e465474 100644 --- a/Domain/Karten/Zahlenkarte.java +++ b/Domain/Karten/Zahlenkarte.java @@ -22,7 +22,7 @@ public class Zahlenkarte extends Karte { // Attribute jedes Objektes /*------------------------------------------*/ private Kartenfarbe farbe; - private int kartenNummer; + private int wert; /*------------------------------------------*/ // Konstruktoren (default und spezifische) @@ -31,10 +31,10 @@ public class Zahlenkarte extends Karte { super(); } - public Zahlenkarte(Kartenfarbe farbe, int kartenNummer) { + public Zahlenkarte(Kartenfarbe farbe, int wert) { super(); setFarbe(farbe); - setKartenNummer(kartenNummer); + setWert(wert); } /*------------------------------------------*/ @@ -52,12 +52,12 @@ public class Zahlenkarte extends Karte { return farbe; } - public void setKartenNummer(int kartenNummer) { - this.kartenNummer = kartenNummer; + public void setWert(int kartenNummer) { + this.wert = kartenNummer; } - public int getKartenNummer() { - return kartenNummer; + public int getWert() { + return wert; } /*------------------------------------------*/ diff --git a/Domain/Kartenstapel.java b/Domain/Kartenstapel.java index 1851498..e9e94c2 100644 --- a/Domain/Kartenstapel.java +++ b/Domain/Kartenstapel.java @@ -6,6 +6,11 @@ written on: 05 / 10 / 2023 at: 23:42 */ package Domain; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import Domain.Enums.Kartenfarbe; import Domain.Karten.*; public class Kartenstapel { @@ -21,6 +26,12 @@ public class Kartenstapel { /*------------------------------------------*/ // Attribute jedes Objektes /*------------------------------------------*/ + private boolean[][] belegung = { + { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, + { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, + { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, + { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false } + }; private Karte[] kartenStapel = new Karte[60]; @@ -29,6 +40,7 @@ public class Kartenstapel { /*------------------------------------------*/ public Kartenstapel() { + mischen(); } @@ -74,6 +86,37 @@ public class Kartenstapel { // Hilfsmethoden (privat) /*------------------------------------------*/ + private void Kartenverteilung() { + + Random r = new Random(); + List karten = new ArrayList<>(); + while (karten.size() < 60) { + int high = 4; + int low = 1; + int ultra_high = 15; + int x = r.nextInt(high - low) + low; + int y = r.nextInt(ultra_high - low) + low; + if (!belegung[x - 1][y - 1]) { + if (y == 1) { + karten.add(new Narrenkarte(x * y)); + } else if (y == 15) { + karten.add(new Magierkarte(x * y)); + } else { + if (x == 1) { + karten.add(new Zahlenkarte(Kartenfarbe.ZWERG, y)); + } else if (x == 2) { + + } else if (x == 3) { + + } else if (x == 4) { + + } + } + } + } + + } + // } diff --git a/Facade/Spiel.java b/Facade/Spiel.java index c5ac7ac..772d080 100644 --- a/Facade/Spiel.java +++ b/Facade/Spiel.java @@ -55,6 +55,7 @@ public class Spiel implements Serializable { this.istBeendet = false; this.spielerAmZug = null; this.runde = 0; + this.kartenstapel = new Kartenstapel(); }; /*--------------------------------------------------------*/ // statische Methoden @@ -167,6 +168,26 @@ public class Spiel implements Serializable { System.out.println("Es fehlen " + (3 - this.spieler.size()) + " spieler"); } + while (!this.istSpielBeendet()) { + System.out.println("Das Spiel wurde gestartet."); + + // Beginn der Runde + // Stiche erstellen + erstelleStiche(this.runde); + // Karten verteilen + + // Runde erhöhen + runde++; + } + + // Die Karten sind verteilt + + // Für jeden Spieler Karten ausspielen und im Stich speichern + + // ermitteln welcher Spieler gewonnen hat + + // Stich beim Spieler speichern + // Gameloop? } @@ -232,6 +253,8 @@ public class Spiel implements Serializable { private void updateSpielerAmZug() { if (this.spieler.size() >= 1) { this.spielerAmZug = (Spieler) this.spieler.values().toArray()[0]; + } else { + this.spielerAmZug = null; } } diff --git a/RendomTest.java b/RendomTest.java new file mode 100644 index 0000000..127786c --- /dev/null +++ b/RendomTest.java @@ -0,0 +1,17 @@ +/* +============================================================ +This is the "RendomTest" file from Author: Philipp Kotte +written on: 20 / 10 / 2023 at: 08:26 +============================================================ +*/ + +import java.util.Random; + +public class RendomTest { + public static void main(String[] args) { + Random r = new Random(); + int high = 10; + int low = 1; + System.out.println(r.nextInt(high - low) + low); + } +} diff --git a/Test/Domain/Karten/ZahlenkarteTest.java b/Test/Domain/Karten/ZahlenkarteTest.java index c34067e..b718829 100644 --- a/Test/Domain/Karten/ZahlenkarteTest.java +++ b/Test/Domain/Karten/ZahlenkarteTest.java @@ -38,10 +38,10 @@ public class ZahlenkarteTest { } assertEquals(zm.get(7).getFarbe(), Kartenfarbe.MENSCH); - assertEquals(zm.get(7).getKartenNummer(), 7); + assertEquals(zm.get(7).getWert(), 7); assertEquals(zm.get(4).getFarbe(), Kartenfarbe.MENSCH); - assertEquals(zm.get(4).getKartenNummer(), 4); + assertEquals(zm.get(4).getWert(), 4); } @Test @@ -54,10 +54,10 @@ public class ZahlenkarteTest { } assertEquals(ze.get(7).getFarbe(), Kartenfarbe.ELF); - assertEquals(ze.get(7).getKartenNummer(), 7); + assertEquals(ze.get(7).getWert(), 7); assertEquals(ze.get(4).getFarbe(), Kartenfarbe.ELF); - assertEquals(ze.get(4).getKartenNummer(), 4); + assertEquals(ze.get(4).getWert(), 4); } @Test @@ -70,10 +70,10 @@ public class ZahlenkarteTest { } assertEquals(zz.get(7).getFarbe(), Kartenfarbe.ZWERG); - assertEquals(zz.get(7).getKartenNummer(), 7); + assertEquals(zz.get(7).getWert(), 7); assertEquals(zz.get(4).getFarbe(), Kartenfarbe.ZWERG); - assertEquals(zz.get(4).getKartenNummer(), 4); + assertEquals(zz.get(4).getWert(), 4); } @@ -87,9 +87,9 @@ public class ZahlenkarteTest { } assertEquals(zr.get(9).getFarbe(), Kartenfarbe.RIESE); - assertEquals(zr.get(9).getKartenNummer(), 9); + assertEquals(zr.get(9).getWert(), 9); assertEquals(zr.get(2).getFarbe(), Kartenfarbe.RIESE); - assertEquals(zr.get(2).getKartenNummer(), 2); + assertEquals(zr.get(2).getWert(), 2); } } From 04544be9ee7871147595dca9a154a4905bb15934 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Wed, 25 Oct 2023 12:36:07 +0200 Subject: [PATCH 5/5] Testklassen aktueller Stand git push origin Stich --- Test/Domain/Karten/MagierkarteTest.java | 22 ++++++---------------- Test/Domain/Karten/NarrenkarteTest.java | 7 +++---- Test/Domain/Karten/ZahlenkarteTest.java | 8 -------- Test/Domain/KartenstapelTest.java | 2 -- 4 files changed, 9 insertions(+), 30 deletions(-) diff --git a/Test/Domain/Karten/MagierkarteTest.java b/Test/Domain/Karten/MagierkarteTest.java index f8b9283..8adf68c 100644 --- a/Test/Domain/Karten/MagierkarteTest.java +++ b/Test/Domain/Karten/MagierkarteTest.java @@ -6,18 +6,8 @@ written on: 10 / 10 / 2023 at: 21:18 */ package Test.Domain.Karten; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThrows; - -import java.util.ArrayList; - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; +import static org.junit.Assert.assertEquals; +import org.junit.Test; import Domain.Enums.Kartenfarbe; import Domain.Karten.Magierkarte; @@ -37,7 +27,7 @@ public class MagierkarteTest { Magierkarte m2 = new Magierkarte(Kartenfarbe.ELF, "Zauberer"); Magierkarte m3 = new Magierkarte(Kartenfarbe.RIESE, "Zauberer"); Magierkarte m4 = new Magierkarte(Kartenfarbe.ZWERG, "Zauberer"); - + assertEquals(Kartenfarbe.MENSCH, m1.getKartenfarbe()); assertEquals("Zauberer", m1.getBezeichnung()); assertEquals("BLAU", Kartenfarbe.MENSCH.getFarbe()); @@ -50,9 +40,9 @@ public class MagierkarteTest { assertEquals(Kartenfarbe.ZWERG, m4.getKartenfarbe()); assertEquals("Zauberer", m4.getBezeichnung()); assertEquals("ROT", Kartenfarbe.ZWERG.getFarbe()); - + assertEquals("Zauberer: MENSCH (BLAU).", m1.toString()); - + } - + } diff --git a/Test/Domain/Karten/NarrenkarteTest.java b/Test/Domain/Karten/NarrenkarteTest.java index 12f132c..77ab92c 100644 --- a/Test/Domain/Karten/NarrenkarteTest.java +++ b/Test/Domain/Karten/NarrenkarteTest.java @@ -7,7 +7,6 @@ written on: 10 / 10 / 2023 at: 21:18 package Test.Domain.Karten; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; import org.junit.Test; @@ -22,17 +21,17 @@ public class NarrenkarteTest { Narrenkarte n2 = new Narrenkarte(Kartenfarbe.ELF, "Narr"); Narrenkarte n3 = new Narrenkarte(Kartenfarbe.RIESE, "Narr"); Narrenkarte n4 = new Narrenkarte(Kartenfarbe.ZWERG, "Narr"); - + assertEquals(n1.getKartenfarbe(), Kartenfarbe.MENSCH); assertEquals(n2.getKartenfarbe(), Kartenfarbe.ELF); assertEquals(n3.getKartenfarbe(), Kartenfarbe.RIESE); assertEquals(n4.getKartenfarbe(), Kartenfarbe.ZWERG); - + 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"); diff --git a/Test/Domain/Karten/ZahlenkarteTest.java b/Test/Domain/Karten/ZahlenkarteTest.java index 2671a5e..65b5368 100644 --- a/Test/Domain/Karten/ZahlenkarteTest.java +++ b/Test/Domain/Karten/ZahlenkarteTest.java @@ -37,10 +37,8 @@ public class ZahlenkarteTest { zm.put(i, zahlenkarte); } - assertEquals(zm.get(7).getKartenfarbe(), Kartenfarbe.MENSCH); assertEquals(zm.get(7).getKartenNummer(), 7); - assertEquals(zm.get(4).getKartenfarbe(), Kartenfarbe.MENSCH); assertEquals(zm.get(4).getKartenNummer(), 4); } @@ -53,10 +51,8 @@ public class ZahlenkarteTest { ze.put(i, zahlenkarte); } - assertEquals(ze.get(7).getKartenfarbe(), Kartenfarbe.ELF); assertEquals(ze.get(7).getKartenNummer(), 7); - assertEquals(ze.get(4).getKartenfarbe(), Kartenfarbe.ELF); assertEquals(ze.get(4).getKartenNummer(), 4); } @@ -69,10 +65,8 @@ public class ZahlenkarteTest { zz.put(i, zahlenkarte); } - assertEquals(zz.get(7).getKartenfarbe(), Kartenfarbe.ZWERG); assertEquals(zz.get(7).getKartenNummer(), 7); - assertEquals(zz.get(4).getKartenfarbe(), Kartenfarbe.ZWERG); assertEquals(zz.get(4).getKartenNummer(), 4); } @@ -86,10 +80,8 @@ public class ZahlenkarteTest { zr.put(i, zahlenkarte); } - assertEquals(zr.get(9).getKartenfarbe(), Kartenfarbe.RIESE); assertEquals(zr.get(9).getKartenNummer(), 9); - assertEquals(zr.get(2).getKartenfarbe(), Kartenfarbe.RIESE); assertEquals(zr.get(2).getKartenNummer(), 2); } } diff --git a/Test/Domain/KartenstapelTest.java b/Test/Domain/KartenstapelTest.java index 15de398..72919fc 100644 --- a/Test/Domain/KartenstapelTest.java +++ b/Test/Domain/KartenstapelTest.java @@ -8,8 +8,6 @@ package Test.Domain; import org.junit.Test; -import static org.junit.Assert.assertEquals; - public class KartenstapelTest { @Test