Wyzwanie polega na przekształceniu tekstu wejściowego w kod wyładowania mózgowego, który wyśle tekst.
Samouczek wzięty stąd za zgodą tutaj
Brain-Flak ma dwa stosy, znane jako „lewy” i „prawy”. Aktywny stos zaczyna się od lewej. Jeśli pusty stos zostanie wyskakujący, zwróci 0. To wszystko. Żadnych innych zmiennych. Po uruchomieniu programu każdy argument wiersza poleceń jest przekazywany do aktywnego stosu.
Jedynymi poprawnymi znakami w programie Brain-Flak są ()[]{}<>
i zawsze muszą być zrównoważone. Istnieją dwa rodzaje funkcji: Nilady i Monady . Nilad to funkcja, która zajmuje 0 argumenty. Oto wszystkie nilady:
()
Ocenia jeden.[]
Ocenia wysokość obecnego stosu.{}
Pop aktywny stos. Ocenia wartość wyskakującą.<>
Przełącz aktywny stos. Ocenia zero.
Są one łączone razem podczas oceny. Gdybyśmy mieli „3” nad aktywnym stosem, ten fragment:
()(){}
oceniałby na, 1 + 1 + active.pop()
co ocenia na 5.
Monady biorą jeden argument, kawałek kodu Brain-Flak. Oto wszystkie monady:
(n)
Naciśnij 'n' na aktywnym stosie.[n]
Ocenia ujemne „n”{foo}
Podczas gdy zero nie znajduje się na szczycie stosu, zrób foo.<foo>
Wykonaj foo, ale oceń go na 0.
Funkcje te zwrócą również wartość w nich, więc
(()()())
Popchnie 3 ale
((()()()))
Popchnie 3 dwa razy .
{}
Oceni do sumy wszystkich tras. Więc gdybyśmy mieli „3” i „4” na górze stosu:
{{}}
oceniłby jako 7.
Po zakończeniu wykonywania programu drukowana jest każda wartość pozostawiona na aktywnym stosie, z nową linią pomiędzy. Wartości na drugim stosie są ignorowane.
Zasady
- Możesz założyć, że Brain-Flak działa bez ascii. (
-A
) - Kod flakowania mózgu NIE może wymagać wprowadzania
- Obowiązują wszystkie standardowe zasady
- Kod musi zostać uruchomiony w ciągu 1 minuty dla dowolnego wejścia do 1024 bajtów w TIO. (Jeśli wyjście TIO nie jest dostępne, dostarcz tłumacza i uruchomię go na moim komputerze (mój komputer powinien być w stanie zbliżyć się do TIO)).
- Musisz obsługiwać wprowadzanie dowolnej długości.
- Możesz pobrać dane z pliku.
- Optymalizacja przypadków testowych jest niedozwolona
- Wymagana jest deterministyczna wydajność
- Programy nie muszą być czyszczone w stosie
Przypadki testowe (wypróbuj na nich swój kod, faktyczne wyniki punktacji zostaną opublikowane w ciągu 1-2 tygodni po opublikowaniu wyzwania)
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.
Zwycięski
Aby wygrać, musisz podać całkowitą długość kodu ataku mózgowego podanego przez każdy z przypadków testowych, który zostanie wydany 1-2 tygodnie po dacie publikacji. Wygrywa najkrótsza długość całkowita.
UWAGA!!!!!!:
To nie jest kod-golf , długość kodu nie wpłynie w żaden sposób na końcowy wynik. Docenione jest tworzenie czytelnego kodu. Dzięki!
Przypadki testowe
<your brain-flak code here>
1000, jest nagradzana. Których nie mogę wysłać na inny dzień, ups; nie zauważyłem, jak to było nowe.