Fantasy-Spiel
Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine ausführbare Klasse und/oder eine Testklasse.
Klassendiagramm
Allgemeine Hinweise
- Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und Object-Methoden dargestellt
 - So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die Object-Methoden wie gewohnt implementiert werden
 
Hinweis zur Klasse Character
Die Methode int compareTo(other: Character) soll so implementiert werden, dass
Spielfiguren absteigend nach ihrem Level und bei gleichem Level absteigend nach
ihren Erfahrungspunkten sortiert werden können.
Hinweise zur Klasse Game
- Die Schlüssel-Werte-Paare des Assoziativspeichers 
charactersbeinhalten als Schlüssel eine Spielfigur sowie als Wert deren Status - Die Methode 
Status setStatus(character: Character, newStatus: Status)soll den Status der eingehenden Spielfigur auf den eingehenden Wert setzen und den alten Status zurückgeben. Für den Fall, dass der neue Status dem alten Status entspricht, soll die AusnahmeInvalidStatusExceptionausgelöst werden - Die Methode 
Optional<Character> getCharacterByStatus(status: Status)soll eine Spielfigur zum eingehenden Status zurückgeben