Votre défi est de transformer le texte d'entrée en code de flak de cerveau qui produira le texte.
Tutoriel tiré d' ici avec autorisation ici
Brain-Flak a deux piles, appelées «gauche» et «droite». La pile active commence à gauche. Si une pile vide est sautée, elle retournera 0. C'est tout. Pas d'autres variables. Lorsque le programme démarre, chaque argument de ligne de commande est poussé vers la pile active.
Les seuls caractères valides d'un programme Brain-Flak le sont ()[]{}<>
et ils doivent toujours être équilibrés. Il existe deux types de fonctions: Nilades et Monades . Un nilad est une fonction qui prend 0 arguments. Voici toutes les nilades:
()
Évalue à un.[]
Évalue à la hauteur de la pile actuelle.{}
Pop la pile active. Évalue la valeur sautée.<>
Basculez la pile active. Évalue à zéro.
Ceux-ci sont concaténés ensemble lorsqu'ils sont évalués. Donc, si nous avions un «3» au-dessus de la pile active, cet extrait de code:
()(){}
évaluerait 1 + 1 + active.pop()
qui évaluerait à 5.
Les monades prennent un argument, un morceau de code Brain-Flak. Voici toutes les monades:
(n)
Appuyez sur 'n' sur la pile active.[n]
Évalue à «n» négatif{foo}
Bien que zéro ne soit pas au sommet de la pile, faites-le.<foo>
Exécutez foo, mais évaluez-le à 0.
Ces fonctions renverront également la valeur à l'intérieur d'eux, donc
(()()())
Poussera 3 mais
((()()()))
Poussera 3 fois .
L' {}
évaluera à la somme de tous les runs. Donc, si nous avions «3» et «4» en haut de la pile:
{{}}
serait évalué comme 7.
Une fois le programme exécuté, chaque valeur restante sur la pile active est imprimée, avec une nouvelle ligne entre. Les valeurs de l'autre pile sont ignorées.
Règles
- Vous pouvez supposer que le Brain-Flak est exécuté avec ascii out. (
-A
) - Le code brain-flak ne doit PAS nécessiter d'entrée
- Toutes les règles standard s'appliquent
- Le code doit s'exécuter dans 1 minute pour toute entrée jusqu'à 1024 octets sur TIO. (Si aucune sortie TIO n'est disponible, fournissez un interprète et je l'exécuterai sur ma machine (ma machine devrait pouvoir s'approcher de TIO)).
- Vous devez prendre en charge la saisie de longueur arbitraire.
- Vous pouvez prendre des entrées à partir d'un fichier.
- L'optimisation pour les cas de test n'est pas autorisée
- Une sortie déterministe est requise
- Les programmes n'ont pas besoin d'être propres
Cas de test (essayez votre code sur ceux-ci, les textes de notation réels seront publiés dans les 1-2 semaines après la publication du défi)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
The meaning of brain-flak is to flak your brain with pain.
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die-to sleep,
No more; and by a sleep to say we die
<your brain-flak code here>
The fitness pacer test is a multi stage test. Avacado Avacado Avacadad Avacadad carrot.bat carrot.jar carrot.carrot Quack Quack Quack Quack Quack Quack Quack Quack Quack downgoat doawngoat down down gaot
This challenge came from a online program that turned text into brain-fuck. However brain-fuck has limitations and it is not nearly as cool as brain-flak. I really am looking forward to cool programs :) I am glad you took the time to read this and look forward to seeing your answer.
Gagnant
Pour gagner, vous devez donner la longueur totale du code brain-flak donné par chacun des cas de test qui sera publié 1 à 2 semaines après la date du post. La longueur totale la plus courte l'emporte.
REMARQUE!!!!!!:
Ce n'est pas du code-golf , la longueur de votre code n'affectera en aucun cas votre score final. Faire du code lisible est apprécié. Merci!
Cas de test
<your brain-flak code here>
moins de 1000 est récompensée par la prime. Que je ne peux pas poster pour un autre jour, oups; n'a pas remarqué à quel point c'était nouveau.