From 8689110670d3fedf68e364917093fe332c1dc8b8 Mon Sep 17 00:00:00 2001 From: Philipp Kotte Date: Fri, 20 Oct 2023 08:52:29 +0200 Subject: [PATCH] =?UTF-8?q?Kartenvariable=20zu=20Wert=20ge=C3=A4ndert,=20d?= =?UTF-8?q?ementsprechend=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); } }