Mon devoir est d'écrire un essai martien (voir ci-dessous) entre 729 et 810 mots, inclus. Votre tâche consiste à écrire un programme qui générera l’essai.
Histoire
Au tournant du XXe siècle, la spiritualiste Catherine-Elise Müller aurait communiqué avec des Martiens. Pendant les transes somnambulatoires, elle écrivait des scripts martiens. La psychologue Théodore Flourney a découvert que ses écrits martiens ressemblaient beaucoup à son français natal. Dans son livre "De l'Inde à la planète Mars", il a documenté l'alphabet martien de Catherine.
Ce qui suit est vaguement basé sur cet alphabet avec un mythe étendu.
Description du problème
La langue martienne a 21 lettres, montrées ici à côté de chaque équivalent latin:
Malheureusement, il n'y a pas d'Unicode pour Martian (bien que Mars fasse partie de l'univers), nous sommes donc bloqués avec des caractères latins.
Alors qu'en anglais, nos phonèmes se divisent en deux types principaux (consonnes / voyelles) que nous mappons de manière approximative en lettres, Martian a trois types de lettres:
- Les voyelles: aeimnou
- Les consonnes dures: bcdgkpt
- Les consonnes douces: fhlrsvz
En plus de cela, la langue martienne contient un seul signe de ponctuation - la période.
Un mot martien est un ensemble de 3 à 9 lettres. Tous les mots martiens ont au moins une voyelle, une consonne dure et une consonne douce (quelque soit l'arrangement). Par exemple, fng
, cdaz
, vpi
et pascal
sont des mots martiens.
Une phrase martienne est un ensemble de 3 à 9 mots martiens délimités par des espaces et suivis d'un point.
Un paragraphe martien est un ensemble de 3 à 9 phrases martiennes délimitées par des espaces et suivi d'une nouvelle ligne.
Un essai martien est une collection de paragraphes martiens qui ne contient aucune répétition de mots contigus.
Une répétition de mots contigus est toute construction SS où S est un ensemble de mots contigus. Notez que cette définition ignore les limites des phrases et des paragraphes.
Exemples
Remarque: il y a une nouvelle nouvelle ligne après chaque exemple (car tous les paragraphes martiens se terminent par une nouvelle ligne)
Essai non martien
Lorem ipsum dolor sit amet. quis nostrud exercitation ullamco laboris.
...pour de nombreuses raisons. Cet exemple illustre quelques règles diverses:
- lorem n'est pas un mot martien car il n'a pas de consonnes dures.
- amet n'est pas un mot martien car il n'a pas de consonnes douces. (
m
est une voyelle martienne). - quis n'est pas un mot martien car il n'a pas de consonnes dures
- quis n'est pas un mot martien car q n'est pas une lettre martienne
- l'exercice physique n'est pas un mot martien parce qu'il a plus de 9 lettres
- l'exercice n'est pas un mot martien car x n'est pas une lettre martienne
Essai martien
fng cdaz vpi. pascal a cassé la base. les popplers ont bon goût.
... parce que c'est un paragraphe martien. Le paragraphe martien contient trois phrases martiennes.
Essai non martien
fng cdaz vpi. pascal a cassé la base. règles pascal gratuites.
... puisque free pascal rules.
n'est pas une phrase martienne, parce que ni free
ne rules
sont des mots de Mars, parce qu'ils n'ont pas de consonnes dures.
Essai martien
fng cdaz vpi. pascal a cassé la base. les popplers ont bon goût. cdaz vpi fng. pauses de base pascal. popplers frappent fort. fng cdaz vpi.
... qui contient deux paragraphes martiens. La phrase fng cdaz vpi.
apparaît deux fois, mais c'est parfait.
Essai non martien
les popplers ont un goût de fng. cdaz vpi pascal. cassé fng cdaz vpi. Pascal a brisé les planètes Omicron. base effraie les chèvres. vpi piv vpi.
... parce que la construction fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke
est une répétition de mots contigus.
Défi
Votre défi est d’écrire une fonction ou un programme qui n’accepte aucune entrée, ce qui produit en sortie mon devoir; c'est-à-dire que votre programme devrait générer un essai martien entre 729 et 810 mots (inclus). N'oubliez pas que la sortie de votre programme doit être un essai martien valide, mais vous n'avez pas à le générer de manière aléatoire ou différente à chaque fois. Tout ce que vous faites pour générer un essai martien valide compte.
J'ai écrit un programme C ++ pour vérifier les essais que vous êtes autorisé à utiliser.
C'est du code golf. Le code le plus court en octets gagne. Lacunes standard interdites.