L2: Zufallsgedicht - JirkaDellOro/Softwaredesign GitHub Wiki

Schreiben Sie ein kleines Programm, welches ein zufällig kreiertes Gedicht von wenigstens fünf Zeilen ausgibt. Die einzelnen Sätze sind primitiv und werden nur aus Subjekt, Prädikat und Objekt gebildet. Beispiel: „Snape braut Zaubertränke“. Die Worte hierfür sollen zu Programmbeginn als literale Initialisierung in drei Arrays definiert sein. Im Gedicht sollen alle Worte verwendet werden, aber keines mehrfach. Bei jedem Programmlauf sollen die Worte zufällig kombiniert werden, so dass die Wahrscheinlichkeit für zwei aufeinanderfolgende identische Gedichte gering ist. Die Zeilen können sich reimen, müssen aber nicht.

Implementieren Sie eine Methode GetVerse(...) welche den nächsten Vers des Gedichts zusammen stellt. In der Main-Methode sollen die einzelnen Verse zunächst in einem neuen Array zwischengespeichert werden. Schließlich werden die Zeilen in der Konsole ausgegeben.

Im Beispiel können die oben angegebenen Arrays nach "dotnet run" zu der untenstehenden Ausgabe führen:

static string[] subjects = { "Harry", "Hermine", "Ron", "Hagrid", "Snape", "Dumbledore" };
static string[] verbs = { "braut", "liebt", "studiert", "hasst", "zaubert", "zerstört" };
static string[] objects = { "Zaubertränke", "den Grimm", "Lupin", "Hogwards", "die Karte des Rumtreibers", "Dementoren" };

...

Harry zaubert Dementoren
Hermine liebt den Grimm
Ron braut Zaubertränke
Dumbledore hasst Hogwards
Snape zerstört Lupin
Hagrid studiert die Karte des Rumtreibers