Celem jest napisanie programu (cokolwiek poza jawnym pieprzeniem mózgu), który wydrukuje najlepszą zasadę Barneya Stinsona :
Nowe jest zawsze lepsze.
gdy interpretowane normalnie, ale
Legen ... poczekaj na to ... pamiętny!
Przetwarzane za pomocą interpretera Brainfuck.
Niech wygra najpopularniejszy brat. Masz 72 godziny na legendarność.
popularity-contest
polyglot
brainfuck
Thomas Ayoub
źródło
źródło
code-golf
jest to najlepszy tag dla tego wyzwania. IMHOpopularity-contest
byłoby lepsze.Odpowiedzi:
DO#
Postanowiłem więc trochę bardziej ... kreatywnie z moim wpisem. Kod Brainfuck jest osadzony w C # jako różne operatory (nie w komentarzach ani w ciągach zakodowanych na sztywno), podczas gdy sam kod C # działa na podobnej zasadzie jak sposób, w jaki Brainfuck drukuje znaki (co oznacza, że nie ma zakodowanych ciągów, a C # generuje każdy indywidualny znak jako liczba całkowita następnie rzutuje go na znak podczas drukowania).
Jestem pewien, że mógłbym uczynić to bardziej eleganckim, ale zajęło mi to wystarczająco dużo czasu, aby zakończyć.
Wszystko zostało przetestowane na tym interpretatorze JavaScript Brainfuck przez Cal Henderson i kompilatorze C # Visual Studo 2012 (ukierunkowanym na .NET Framework v4.0).
Oto oryginalny kod Brainfuck, który napisałem dla tego wyzwania:
Podczas uruchamiania kodu C # przez interpreter Brainfuck, otrzymujesz następujące polecenia (zwróć uwagę na dodanie nawiasów kwadratowych na początku, są one z deklaracji tablicy i nic nie robią, ponieważ komórka pod wskaźnikiem pamięci w tablica będzie już miała wartość 0):
źródło
Pogawędka
wpisz w obszarze roboczym i naciśnij „doIt” lub wyślij do BF. BF skradziony z innych plakatów - dzięki.
źródło
JavaScript / Brainfuck
Wersja bez golfa, ponieważ nie jest to konkurs golfowy:
To była okazja dla mnie do nauki BF i było fajnie :)
Trudność polegała na tym, aby nigdy nie używać,
,
ponieważ BF interpretuje to jako dane wejściowe użytkownika i upewnij się, że bajt ma wartość 0 przed użyciem[]
do uzyskania dostępu do elementów tablic.Kodowanie JS jest dość proste, każdy ciąg znaków przed
/
kodowaniem znaku i każdy ciąg znaków przed@
zdefiniowaniem kodu ASCII w systemie dziesiętnym. (+++++++@++++[>++@
=78
=N
)Możesz przetestować Brainfuck tutaj: http://copy.sh/brainfuck/
źródło
Cubically ( TIO ) / BF ( TIO )
(Zaktualizowano 8/4/17, aby uwzględnić zmiany językowe w Cubically)
Zasadniczo wykorzystuje to tyle znaków z programu BF, ile może w programie Cubical, a następnie przykleja resztę programu BF na jego końcu. Nie jest wymagane wymuszone zakończenie z
&
/E
w programie Cubically.źródło
Python / BrainF ** k, 362 znaków
Kod BrainF ** k wzięty z usuniętej odpowiedzi Clémenta Renauda.
Edycja - początkowy znak zerowy nie jest już drukowany.
Wykorzystuje bardzo prostą sztuczkę -
|
znaki zostały dodane do programu BF, a odległości między nimi kodują ciąg wydrukowany w Pythonie. Kod Python jest w większości ignorowany przez BF.źródło
.join
dodano.
, ale nie widziałem żadnej szkody (ponieważ\0
jest niewidoczny).+
Jest i.split
są OK - usunąłem znaki od oryginału.