Meine Hausaufgabe besteht darin, einen marsianischen Aufsatz (siehe unten) mit 729 bis 810 Wörtern zu schreiben . Ihre Aufgabe ist es, ein Programm zu schreiben, das den Aufsatz generiert.
Geschichte
Um die Wende des 20. Jahrhunderts soll die Spiritistin Catherine-Elise Müller mit Marsmenschen kommuniziert haben. Während somnambulatorischer Trances schrieb sie Mars-Skripte. Die Psychologin Théodore Flourney entdeckte, dass ihre marsianischen Schriften ihrem französischen Muttersprachler sehr ähnlich waren, und dokumentierte in seinem Buch "Von Indien zum Planeten Mars" das marsianische Alphabet von Catherine.
Das Folgende basiert lose auf diesem Alphabet mit einem erweiterten Mythos.
Problembeschreibung
Die Mars-Sprache hat 21 Buchstaben, die hier neben jedem lateinischen Äquivalent angezeigt werden:
Leider gibt es für Martian kein Unicode (obwohl der Mars Teil des Universums ist), daher verwenden wir keine lateinischen Zeichen.
Während unsere Phoneme im Englischen in zwei Haupttypen (Konsonanten / Vokale) unterteilt sind, die wir den Buchstaben lose zuordnen, hat Martian drei Buchstabentypen:
- Die Vokale: aeimnou
- Die harten Konsonanten: bcdgkpt
- Die weichen Konsonanten: fhlrsvz
Darüber hinaus enthält die Mars-Sprache ein einziges Interpunktionszeichen - den Punkt.
Ein Mars-Wort besteht aus 3 bis 9 Buchstaben. Alle marsianischen Wörter haben mindestens einen Vokal, einen harten Konsonanten und einen weichen Konsonanten (in beliebiger Anordnung). Zum Beispiel fng
, cdaz
, vpi
und pascal
sind vom Mars Worte.
Ein Mars-Satz besteht aus 3 bis 9 Mars-Wörtern, die durch Leerzeichen und einen Punkt getrennt sind.
Ein Mars-Absatz besteht aus 3 bis 9 Mars-Sätzen, die durch Leerzeichen und eine neue Zeile getrennt sind.
Ein Mars-Aufsatz ist eine Sammlung von Mars-Absätzen, die keine zusammenhängenden Wortwiederholungen enthalten.
Eine Wiederholung zusammenhängender Wörter ist jedes Konstrukt SS, bei dem S eine zusammenhängende Menge von Wörtern ist. Beachten Sie, dass diese Definition Satz- und Absatzgrenzen ignoriert.
Beispiele
Bitte beachten Sie: Nach jedem Beispiel folgt eine einzelne nachgestellte Zeile (da alle Absätze in Mars mit einer neuen Zeile enden).
Nicht marsianischer Aufsatz
Lorem Ipsum Dolor sitzen amet. quis nostrud exercitation ullamco laboris.
...aus vielen Gründen. Dieses Beispiel soll einige verschiedene Regeln veranschaulichen:
- Lorem ist kein marsianisches Wort, weil es keine harten Konsonanten hat.
- amet ist kein marsianisches Wort, weil es keine weichen Konsonanten hat. (
m
ist ein Marsvokal). - quis ist kein marsianisches Wort, weil es keine harten Konsonanten hat
- quis ist kein Mars-Wort, weil q kein Mars-Buchstabe ist
- Übung ist kein Mars-Wort, weil es mehr als 9 Buchstaben hat
- Übung ist kein Mars-Wort, weil x kein Mars-Buchstabe ist
Marsaufsatz
fng cdaz vpi. Pascal brach Grund. Popplers schmecken gut.
... weil es ein Marsabsatz ist. Der marsianische Absatz enthält drei marsianische Sätze.
Nicht marsianischer Aufsatz
fng cdaz vpi. Pascal brach Grund. Freie Pascal Regeln.
... da free pascal rules.
ist kein Mars-Satz, weil weder Mars-Wörter free
noch rules
Mars-Wörter, weil sie keine harten Konsonanten haben.
Marsaufsatz
fng cdaz vpi. Pascal brach Grund. Popplers schmecken gut. cdaz vpi fng. Grundlegende Pausen Pascal. Poppler schlagen hart zu. fng cdaz vpi.
... das zwei Absätze vom Mars enthält. Der Satz fng cdaz vpi.
erscheint zweimal, aber das ist völlig in Ordnung.
Nicht marsianischer Aufsatz
Poppler schmecken fng. cdaz vpi pascal. brach fng cdaz vpi. Pascal brach Omicron-Planeten. grundlegende Angst Ziegen. vpi piv vpi.
... weil das Konstrukt fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke
eine zusammenhängende Wortwiederholung ist.
Herausforderung
Ihre Herausforderung besteht darin, eine Funktion oder ein Programm zu schreiben, das keine Eingaben akzeptiert und als Ausgabe meine Hausaufgaben erzeugt. Das heißt, Ihr Programm sollte einen marsianischen Aufsatz mit 729 bis 810 Wörtern (einschließlich) erstellen. Denken Sie daran, dass die Ausgabe Ihres Programms ein gültiger marsianischer Aufsatz sein muss, aber Sie müssen ihn nicht jedes Mal zufällig oder anders generieren. Alles, was Sie tun, um einen gültigen Mars-Aufsatz zu erstellen, zählt.
Ich habe ein C ++ - Programm geschrieben, um Aufsätze zu überprüfen , die Sie verwenden dürfen.
Das ist Code Golf. Kürzester Code in Bytes gewinnt. Standardlücken sind nicht erlaubt.