1
0
Fork 0
main
Kai Sellmann 2023-10-26 09:03:09 +02:00
parent a5ebd0c26d
commit d270f82d72
8 changed files with 164 additions and 19 deletions

65
Domain/Hand.java 100644
View File

@ -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
}

View File

@ -8,8 +8,14 @@ package Domain.Karten;
public abstract class Karte { public abstract class Karte {
// Statische Konstanten
// Statische Attribute
private static int kartenId = 0; private static int kartenId = 0;
// Attribute der Objekte (Kann es keine geben, da die Klasse abstrakt ist)
// Konstruktoren
public Karte() { public Karte() {
if (kartenId <= 60) { if (kartenId <= 60) {
setKartenId(); setKartenId();
@ -18,7 +24,7 @@ public abstract class Karte {
throw new RuntimeException("Es darf nur 60 Karten im Spiel geben."); throw new RuntimeException("Es darf nur 60 Karten im Spiel geben.");
} }
} }
// Statische Methoden
public static int getKartenId() { public static int getKartenId() {
return kartenId; return kartenId;
} }
@ -27,6 +33,18 @@ public abstract class Karte {
kartenId++; kartenId++;
} }
public abstract String getName(); // Getter und Setter (Kann es auch keine geben)
// Overrides
@Override
public abstract String toString();
// Public Methoden
// Private Methoden
} }

View File

@ -50,6 +50,12 @@ public class Magierkarte extends Karte {
this.name = name; this.name = name;
} }
// Overrides
@Override
public String toString() {
return this.name;
}
// public Methoden // public Methoden
// private Methoden // private Methoden

View File

@ -42,7 +42,10 @@ public class Narrenkarte extends Karte {
return nkAnzahl; return nkAnzahl;
} }
// Overrides // Overrides
@Override
public String toString() {
return this.name;
}
// Public Methoden // Public Methoden
// Private Methoden // Private Methoden

View File

@ -64,7 +64,10 @@ public class Zahlenkarte extends Karte {
this.name = NAME; this.name = NAME;
} }
// Overrides // Overrides
@Override
public String toString() {
return this.name + " " + this.charakter + " " + this.kartenwert;
}
// Public Methoden // Public Methoden
// Private Methoden // Private Methoden
@ -96,9 +99,4 @@ public class Zahlenkarte extends Karte {
zwergID++; zwergID++;
} }
@Override
public String getName() {
// TODO Auto-generated method stub
return this.name;
}
} }

View File

@ -97,7 +97,7 @@ public class Kartenstapel {
public HashMap<Integer, String> getStatusGemischt() { public HashMap<Integer, String> getStatusGemischt() {
HashMap<Integer, String> kg = new HashMap<>(); HashMap<Integer, String> kg = new HashMap<>();
for (int i = 1; i <= 60; i++) { 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; return kg;
} }
@ -133,6 +133,7 @@ public class Kartenstapel {
* als Ausgangswert genommen. * als Ausgangswert genommen.
*/ */
public Karte getObersteKarte() { public Karte getObersteKarte() {
// Todo: Nur für den Trumpf
Karte austeilen = null; Karte austeilen = null;
if (kartengemischt.get(kartenzählen) != null && kartenzählen <= 60) { if (kartengemischt.get(kartenzählen) != null && kartenzählen <= 60) {
@ -150,6 +151,10 @@ public class Kartenstapel {
return austeilen; return austeilen;
} }
/**
*
*/
// Private Methoden // Private Methoden
} }

View File

@ -13,26 +13,27 @@ import Domain.Enums.Geschlecht;
public class Spieler implements Serializable{ public class Spieler implements Serializable{
// Statische Konstanten // Statische Konstanten
private final static String BOTNAME = "Spieler (KI): "; // KI erhält einen konstanten Namen + id(zähler)
// Statische Attribute // Statische Attribute
private static int id = 1; // Interner Zähler für Prüfung max Spieler private static int id = 1; // Interner Zähler für Prüfung max Spieler und für Name KI(BOTNAME + id)
private static String botname = "Spieler (KI): "; // KI erhält einen festen Namen + aktuelle id
// Attribute der Objekte // Attribute der Objekte
private int spielerID; // Feste SpielerID zur Festlegung der Ref-Variablen private int spielerID; // Feste SpielerID zur Festlegung der Ref-Variablen
private String name; // Name eines Spielers oder fester Name falls Geschlecht.KI private String name; // Name eines Spielers oder fester Name falls Geschlecht.KI
private Geschlecht geschlecht; private Geschlecht geschlecht;
private Hand hand;
private int vorhersage; private int vorhersage;
// Konstruktoren // Konstruktoren
/** /**
* Die Prüfung, ob der @param name leer ist, muss in der Klasse Spiel erfolgen. * 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. * Es wird der @param id noch zusätzlich geprüft.
* @param geschlecht * @param geschlecht wird übergeben, als MinAnforderung
*/ */
public Spieler(Geschlecht geschlecht) { public Spieler(Geschlecht geschlecht) {
if (id <= 6) { if (id <= 6) {
if (geschlecht != Geschlecht.KI) { if (geschlecht != Geschlecht.KI) {
setGeschlecht(geschlecht); setGeschlecht(geschlecht);
setVorhersage(0); setVorhersage(0);
setHand(0);
setSpielerID(id); setSpielerID(id);
} }
else { else {
@ -91,6 +92,12 @@ public class Spieler implements Serializable{
public int getSpielerID() { public int getSpielerID() {
return this.spielerID; return this.spielerID;
} }
public void setHand(int runde) {
this.hand = new Hand(runde);
}
public Hand getHand() {
return this.hand;
}
// Overrides // Overrides
// Public Methoden // Public Methoden
@ -98,9 +105,10 @@ public class Spieler implements Serializable{
// Private Methoden // Private Methoden
private void setNeuerBot(Geschlecht geschlecht) { private void setNeuerBot(Geschlecht geschlecht) {
this.spielerID = id; this.spielerID = id;
this.name = botname + id; this.name = BOTNAME + " " + id;
this.geschlecht = geschlecht; this.geschlecht = geschlecht;
this.vorhersage = 0; setVorhersage(0); // Nicht zwingend notwendig, aber dient
setHand(0); // der Übersicht aller Attribute.
setId(); setId();
} }

View File

@ -6,11 +6,53 @@ written on: 05 / 10 / 2023 at: 23:25
*/ */
package Facade; package Facade;
import Domain.Spieler;
public class Spiel { public class Spiel {
// 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() { public static int getRunde() {
// TODO Auto-generated method stub return runde;
return 0; }
// 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++;
} }
} }