Im Folgenden wollen wir das Nachrichtensystem von den Souls-Spielen (stark vereinfacht) nachahmen, mit welchem man Nachrichten anhand von sogenannten Templates, Wörtern und Verbindungen erstellen kann. Templates haben die Form “text **** text2”, wobei text
und text2
beliebigen (im besten Fall schlüssigem) Text darstellen. Das ****
im Template wird durch ein ausgewähltes Wort aus den Wörtern ersetzt. Dadurch entsteht ein Satz. Die Wörter sind in Kategorien eingeordnet. Um kompliziertere Aussagen zu bilden, lassen sich zwei Sätze mit Verbindungen verbinden. Hier ein Beispiel aus dem Spiel “Elden Ring”:
Eine mögliche Nachricht wäre demnach “Sorcerer required ahead therefore Seek Sorcerer”.
Speichern Sie Ihre eigene Sammlung von Templates, Wörtern (denken Sie daran, dass Wörter gruppiert werden) und Verbindungen. Welche Datenstrukturen eignen sich dafür jeweils?
Schreiben Sie nun eine Methode, welche ein Wort und ein Template bekommt und die ****
im Template mit dem Wort ersetzt. Auf welche nützliche Methode für Strings können Sie dazu zugreifen?
Schreiben Sie nun ein Konsolenprogramm, mit dem man sich interaktiv Nachrichten zusammenbauen kann.
Seek tags.
(Die Tags dieser Aufgabe “[Strings, Listen, Dictionaries]” verraten schon, welche Datenstrukturen geeignet sind).
Method replace
required ahead in short Try documentation.
(Die String Methode replace
eignet sich hier besonders gut, siehe https://www.w3schools.com/python/ref_string_replace.asp).