WIZARD_PR2_DOP/Domain/Spieler.java

223 lines
5.0 KiB
Java
Raw Permalink Normal View History

/*
============================================================
This is the "Spieler" file from Author: Philipp Kotte
written on: 05 / 10 / 2023 at: 23:48
============================================================
*/
package Domain;
import Domain.Enums.Geschlecht;
2023-11-07 15:48:15 +01:00
import Domain.Exceptions.SpielNotFoundException;
import Facade.Spiel;
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
/*------------------------------------------*/
// statische Konstanten
/*------------------------------------------*/
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// statische Attribute(zB. zähler)
/*------------------------------------------*/
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// Attribute jedes Objektes
/*------------------------------------------*/
private int id = 0;
private String name;
private int vorhersage;
private Geschlecht geschlecht;
2023-11-07 15:48:15 +01:00
private Spiel spielexsist;
//
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// Konstruktoren (default und spezifische)
/*------------------------------------------*/
// 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 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);
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);
}
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);
setVorhersage(vorhersage);
}
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// statische Methoden
/*------------------------------------------*/
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// Getter und Setter
/*------------------------------------------*/
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;
}
// id
2023-10-10 15:22:09 +02:00
/**
* Setzt die ID des Spielers
*
* @param int id
*/
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
*/
public int getId() {
return id;
}
2023-10-10 15:22:09 +02:00
// name
2023-10-10 15:22:09 +02:00
/**
* Setzt den Namen des Spielers
*
* @param String name
*/
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
*/
public String getName() {
return this.name;
}
2023-10-10 15:22:09 +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
*/
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
*/
public Geschlecht getGeschlecht() {
return geschlecht;
}
2023-10-10 15:22:09 +02:00
// vorhersage
2023-10-10 15:22:09 +02:00
/**
* Setzt die Vorhersage des Spielers
*
* @param int vorhersage
*/
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
*/
public int getVorhersage() {
return vorhersage;
}
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// @Overrides
/*------------------------------------------*/
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")
*
*/
@Override
public String toString() {
return "ID: " + this.id + " Name: " + this.name + " (" + this.geschlecht + ")";
}
2023-10-10 15:22:09 +02:00
/*------------------------------------------*/
// öffentliche Methodes
/*------------------------------------------*/
2023-11-07 15:48:15 +01:00
/*------------------------------------------*/
// Hilfsmethoden (privat)
/*------------------------------------------*/
2023-11-07 15:48:15 +01:00
private boolean getSpielStatus() {
// TODO Auto-generated method stub
return false;
}
}