WIZARD_PR2_DOP/Domain/Spieler.java

193 lines
4.2 KiB
Java

/*
============================================================
This is the "Spieler" file from Author: Philipp Kotte
written on: 05 / 10 / 2023 at: 23:48
============================================================
*/
package Domain;
import Domain.Enums.Geschlecht;
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;
/*------------------------------------------*/
// Konstruktoren (default und spezifische)
/*------------------------------------------*/
// Default
/**
* Default Konstruktor des Spieler - Klasse
*/
public Spieler() {
}
/**
* Konstruktor des Spieler - Klasse mit den Werten id, name und geschlecht
*
* @param id int
* @param name String
* @param geschlecht Geschlecht
*/
public Spieler(int id, String name, Geschlecht geschlecht) {
this();
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
*/
public Spieler(int id, String name, Geschlecht geschlecht, int vorhersage) {
this(id, name, geschlecht);
setVorhersage(vorhersage);
}
/*------------------------------------------*/
// statische Methoden
/*------------------------------------------*/
/*------------------------------------------*/
// Getter und Setter
/*------------------------------------------*/
// 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 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)
/*------------------------------------------*/
}