2023-10-05 23:49:36 +02:00
|
|
|
/*
|
|
|
|
============================================================
|
|
|
|
This is the "Spieler" file from Author: Philipp Kotte
|
|
|
|
written on: 05 / 10 / 2023 at: 23:48
|
|
|
|
============================================================
|
|
|
|
*/
|
|
|
|
package Domain;
|
|
|
|
|
2023-10-10 14:13:40 +02:00
|
|
|
import Domain.Enums.Geschlecht;
|
2023-11-07 15:48:15 +01:00
|
|
|
import Domain.Exceptions.SpielNotFoundException;
|
|
|
|
import Facade.Spiel;
|
2023-10-05 23:49:36 +02:00
|
|
|
|
2023-10-10 17:44:25 +02:00
|
|
|
import java.io.Serializable;
|
|
|
|
|
2023-11-07 15:48:15 +01:00
|
|
|
public class Spieler implements Serializable {
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// statische Konstanten
|
|
|
|
/*------------------------------------------*/
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// statische Attribute(zB. zähler)
|
|
|
|
/*------------------------------------------*/
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// Attribute jedes Objektes
|
|
|
|
/*------------------------------------------*/
|
2023-10-18 16:00:16 +02:00
|
|
|
private int id = 0;
|
2023-10-10 14:13:40 +02:00
|
|
|
private String name;
|
|
|
|
private int vorhersage;
|
|
|
|
private Geschlecht geschlecht;
|
2023-11-07 15:48:15 +01:00
|
|
|
private Spiel spielexsist;
|
2023-10-25 11:57:48 +02:00
|
|
|
//
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// Konstruktoren (default und spezifische)
|
|
|
|
/*------------------------------------------*/
|
2023-10-10 14:13:40 +02:00
|
|
|
// Default
|
2023-10-10 15:22:09 +02:00
|
|
|
/**
|
|
|
|
* Default Konstruktor des Spieler - Klasse
|
2023-11-07 15:48:15 +01:00
|
|
|
* @throws SpielNotFoundException
|
2023-10-10 15:22:09 +02:00
|
|
|
*/
|
2023-11-07 15:48:15 +01:00
|
|
|
public Spieler() throws SpielNotFoundException {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public Spieler(Spiel spiel) throws SpielNotFoundException {
|
|
|
|
if(spiel == null) {
|
|
|
|
throw new SpielNotFoundException("Es ist kein Spiel vorhanden.");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
setSpielexsist(spiel);
|
|
|
|
}
|
2023-10-10 14:13:40 +02:00
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Konstruktor des Spieler - Klasse mit den Werten id, name und geschlecht
|
|
|
|
*
|
|
|
|
* @param id int
|
|
|
|
* @param name String
|
|
|
|
* @param geschlecht Geschlecht
|
2023-11-07 15:48:15 +01:00
|
|
|
* @throws SpielNotFoundException
|
2023-10-10 15:22:09 +02:00
|
|
|
*/
|
2023-11-07 15:48:15 +01:00
|
|
|
public Spieler(Spiel spiel, int id, String name, Geschlecht geschlecht) throws SpielNotFoundException {
|
|
|
|
this(spiel);
|
2023-10-18 16:00:16 +02:00
|
|
|
if (id < 6) {
|
|
|
|
setId(id);
|
2023-10-25 11:57:48 +02:00
|
|
|
} else {
|
2023-10-18 16:00:16 +02:00
|
|
|
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
|
2023-10-25 11:57:48 +02:00
|
|
|
} else if (name.length() > 2) {
|
2023-10-18 16:00:16 +02:00
|
|
|
setName(name); // Es wird geprüft, ob Name größer 2 Zeichen
|
2023-10-25 11:57:48 +02:00
|
|
|
} else {
|
2023-10-18 16:00:16 +02:00
|
|
|
throw new RuntimeException("Der Name muss länger als 2 Buchstaben sein.");
|
|
|
|
}
|
2023-10-10 14:13:40 +02:00
|
|
|
setGeschlecht(geschlecht);
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Konstruktor des Spieler - Klasse mit den Werten id, name, geschlecht und
|
|
|
|
* Vorhersage
|
|
|
|
*
|
|
|
|
* @param id int
|
|
|
|
* @param name String
|
|
|
|
* @param geschlecht Geschlecht
|
|
|
|
* @param vorhersage int
|
2023-11-07 15:48:15 +01:00
|
|
|
* @throws SpielNotFoundException
|
2023-10-10 15:22:09 +02:00
|
|
|
*/
|
2023-11-07 15:48:15 +01:00
|
|
|
public Spieler(Spiel spiel, int id, String name, Geschlecht geschlecht, int vorhersage) throws SpielNotFoundException {
|
|
|
|
this(spiel, id, name, geschlecht);
|
2023-10-10 14:13:40 +02:00
|
|
|
setVorhersage(vorhersage);
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// statische Methoden
|
|
|
|
/*------------------------------------------*/
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
2023-10-10 14:13:40 +02:00
|
|
|
// Getter und Setter
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
2023-11-07 15:48:15 +01:00
|
|
|
// 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;
|
|
|
|
}
|
2023-10-10 14:13:40 +02:00
|
|
|
// id
|
2023-10-10 15:22:09 +02:00
|
|
|
/**
|
|
|
|
* Setzt die ID des Spielers
|
|
|
|
*
|
|
|
|
* @param int id
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
private void setId(int id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gibt die ID des Spielers zurück
|
|
|
|
*
|
|
|
|
* @return int id
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public int getId() {
|
|
|
|
return id;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-10 14:13:40 +02:00
|
|
|
// name
|
2023-10-10 15:22:09 +02:00
|
|
|
/**
|
|
|
|
* Setzt den Namen des Spielers
|
|
|
|
*
|
|
|
|
* @param String name
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public void setName(String name) {
|
|
|
|
this.name = name;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gibt den Namen des Spielers zurück
|
|
|
|
*
|
|
|
|
* @return String name
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public String getName() {
|
2023-10-14 19:15:04 +02:00
|
|
|
return this.name;
|
2023-10-10 14:13:40 +02:00
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-10 14:13:40 +02:00
|
|
|
// geschlecht
|
2023-10-10 15:22:09 +02:00
|
|
|
/**
|
|
|
|
* Setzt das Geschlecht des Spielers wie definiert in
|
|
|
|
* {@link Domain.Enums.Geschlecht}
|
|
|
|
*
|
|
|
|
* @param geschlecht
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public void setGeschlecht(Geschlecht geschlecht) {
|
|
|
|
this.geschlecht = geschlecht;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gibt das Geschlecht des Spielers zurück wie definiert in
|
|
|
|
* {@link Domain.Enums.Geschlecht}
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public Geschlecht getGeschlecht() {
|
|
|
|
return geschlecht;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-10 14:13:40 +02:00
|
|
|
// vorhersage
|
2023-10-10 15:22:09 +02:00
|
|
|
/**
|
|
|
|
* Setzt die Vorhersage des Spielers
|
|
|
|
*
|
|
|
|
* @param int vorhersage
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public void setVorhersage(int vorhersage) {
|
|
|
|
this.vorhersage = vorhersage;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gibt die Vorhersage von dem Spieler zurück
|
|
|
|
*
|
|
|
|
* @return int vorhersage
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
public int getVorhersage() {
|
|
|
|
return vorhersage;
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
2023-10-10 14:13:40 +02:00
|
|
|
// @Overrides
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
|
2023-10-10 15:22:09 +02:00
|
|
|
/**
|
|
|
|
* Überschreibt die toString methode für eine eigene Implementation um den
|
|
|
|
* Spieler als String zurück zu geben
|
|
|
|
*
|
|
|
|
* @return ID: "id" Name: "name" ("geschlecht")
|
|
|
|
*
|
|
|
|
*/
|
2023-10-10 14:13:40 +02:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "ID: " + this.id + " Name: " + this.name + " (" + this.geschlecht + ")";
|
|
|
|
}
|
2023-10-10 15:22:09 +02:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// öffentliche Methodes
|
|
|
|
/*------------------------------------------*/
|
2023-11-07 15:48:15 +01:00
|
|
|
|
2023-10-11 17:15:09 +02:00
|
|
|
/*------------------------------------------*/
|
|
|
|
// Hilfsmethoden (privat)
|
|
|
|
/*------------------------------------------*/
|
|
|
|
|
2023-11-07 15:48:15 +01:00
|
|
|
private boolean getSpielStatus() {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2023-10-05 23:49:36 +02:00
|
|
|
}
|