/* ============================================================ This is the "Spieler" file from Author: Philipp Kotte written on: 05 / 10 / 2023 at: 23:48 ============================================================ */ package Domain; import Domain.Enums.Geschlecht; import Domain.Exceptions.SpielNotFoundException; import Facade.Spiel; import java.io.Serializable; public class Spieler implements Serializable { /*------------------------------------------*/ // statische Konstanten /*------------------------------------------*/ /*------------------------------------------*/ // statische Attribute(zB. zähler) /*------------------------------------------*/ /*------------------------------------------*/ // Attribute jedes Objektes /*------------------------------------------*/ private int id = 0; private String name; private int vorhersage; private Geschlecht geschlecht; private Spiel spielexsist; // /*------------------------------------------*/ // Konstruktoren (default und spezifische) /*------------------------------------------*/ // Default /** * Default Konstruktor des Spieler - Klasse * @throws SpielNotFoundException */ public Spieler() throws SpielNotFoundException { } public Spieler(Spiel spiel) throws SpielNotFoundException { if(spiel == null) { throw new SpielNotFoundException("Es ist kein Spiel vorhanden."); } else { setSpielexsist(spiel); } } /** * Konstruktor des Spieler - Klasse mit den Werten id, name und geschlecht * * @param id int * @param name String * @param geschlecht Geschlecht * @throws SpielNotFoundException */ public Spieler(Spiel spiel, int id, String name, Geschlecht geschlecht) throws SpielNotFoundException { this(spiel); if (id < 6) { setId(id); } else { throw new RuntimeException("Es darf nur max 6 Spieler geben."); } if (geschlecht == Geschlecht.KI) { setName(name); // Bei KI wird kein Name gesetzt. name = leerer String } else if (name.length() > 2) { setName(name); // Es wird geprüft, ob Name größer 2 Zeichen } else { throw new RuntimeException("Der Name muss länger als 2 Buchstaben sein."); } setGeschlecht(geschlecht); } /** * Konstruktor des Spieler - Klasse mit den Werten id, name, geschlecht und * Vorhersage * * @param id int * @param name String * @param geschlecht Geschlecht * @param vorhersage int * @throws SpielNotFoundException */ public Spieler(Spiel spiel, int id, String name, Geschlecht geschlecht, int vorhersage) throws SpielNotFoundException { this(spiel, id, name, geschlecht); setVorhersage(vorhersage); } /*------------------------------------------*/ // statische Methoden /*------------------------------------------*/ /*------------------------------------------*/ // Getter und Setter /*------------------------------------------*/ // spielexsist /** * Prüft und setzt Spiel als Ganzes. * Nur dann dürfen Spieler erstellt werden * */ private void setSpielexsist(Spiel spiel) { this.spielexsist = spiel; } public Spiel getSpielexsist() { return this.spielexsist; } // id /** * Setzt die ID des Spielers * * @param int id */ private void setId(int id) { this.id = id; } /** * Gibt die ID des Spielers zurück * * @return int id */ public int getId() { return id; } // name /** * Setzt den Namen des Spielers * * @param String name */ public void setName(String name) { this.name = name; } /** * Gibt den Namen des Spielers zurück * * @return String name */ public String getName() { return this.name; } // geschlecht /** * Setzt das Geschlecht des Spielers wie definiert in * {@link Domain.Enums.Geschlecht} * * @param geschlecht */ public void setGeschlecht(Geschlecht geschlecht) { this.geschlecht = geschlecht; } /** * Gibt das Geschlecht des Spielers zurück wie definiert in * {@link Domain.Enums.Geschlecht} * * @return */ public Geschlecht getGeschlecht() { return geschlecht; } // vorhersage /** * Setzt die Vorhersage des Spielers * * @param int vorhersage */ public void setVorhersage(int vorhersage) { this.vorhersage = vorhersage; } /** * Gibt die Vorhersage von dem Spieler zurück * * @return int vorhersage */ public int getVorhersage() { return vorhersage; } /*------------------------------------------*/ // @Overrides /*------------------------------------------*/ /** * Überschreibt die toString methode für eine eigene Implementation um den * Spieler als String zurück zu geben * * @return ID: "id" Name: "name" ("geschlecht") * */ @Override public String toString() { return "ID: " + this.id + " Name: " + this.name + " (" + this.geschlecht + ")"; } /*------------------------------------------*/ // öffentliche Methodes /*------------------------------------------*/ /*------------------------------------------*/ // Hilfsmethoden (privat) /*------------------------------------------*/ private boolean getSpielStatus() { // TODO Auto-generated method stub return false; } }