Przejdź do treści
100% lokalnie

Koder Brainfuck

Zmień tekst na program Brainfuck, który go wydrukuje, lub uruchom program Brainfuck i zobaczysz jego wyjście.

Wejście
Wynik

Koder Brainfuck

Wklej dowolny tekst, a to narzędzie napisze program Brainfuck, który go wydrukuje dokładnie tak, jak był wprowadzony, znak po znaku. Działa też w odwrotnym kierunku: wklej program Brainfuck, a narzędzie go uruchomi, pokazując, co wypisze. Przełączaj między dwoma trybami za pomocą opcji Tryb lub spróbuj przycisku wymiany, aby wysłać wygenerowany program bezpośrednio do interpretera.

Włączenie opcji "Optymalizuj długość za pomocą pętli" zmniejszy wygenerowany program: zamiast powtarzania + aż 255 razy dla jednego znaku, program buduje wartość za pomocą małej pętli mnożenia, co ma znaczenie, gdy wejście przekracza kilka słów. Opcja Rozmiar komórki kontroluje, jak każdy znak jest przechowywany – komórki 8-bitowe to klasyczne bajty na komórkę w Brainfucku i pasują do tego, jak działają rzeczywiste interpretery i tekst UTF-8, podczas gdy komórki 16-bitowe i 32-bitowe przechowują cały punkt kodowy w jednej komórce, dzięki czemu znaki akcentowane i emoji są prawidłowo zaokrąglane bez dodatkowych bajtów. Opcja Komórki taśmy ustawia, ile komórek pamięci ma dostępny interpreter, a Limit kroków zatrzymuje nieskończoną pętlę przed zawieszeniem strony – podnieś go dla programu, który naprawdę potrzebuje więcej kroków, lub obniż go podczas testowania czegoś, w co jeszcze nie ufasz. "Pokaż stan taśmy po uruchomieniu" dołącza migawkę komórek pamięci po zakończeniu programu, co jest przydatne do debugowania pętli, które nie dają oczekiwanego wyniku. Wygenerowany kod można również zawinąć do stałej szerokości wiersza, aby ułatwić czytanie; sam Brainfuck ignoruje spacje i dowolny znak, który nie jest jednym z ośmiu poleceń, więc zawijanie nigdy nie zmienia działania programu.

Barenzo długie wejście produkuje dłuższy program, i oba kierunki są ograniczone, aby przeglądarka nigdy się nie zawiesiła na przypadkowym nieskończonym wejściu lub nieskończonej pętli – otrzymasz jasną wiadomość mówiącą ci, co zmienić, zamiast zawieszonej strony.

Wszystko działa lokalnie w twojej przeglądarce; żaden tekst ani kod nigdy nie jest wysyłany nigdzie. Skopiuj wynik, pobierz go jako plik .txt, wyczyść panel lub wyślij wyjście bezpośrednio z powrotem do wejścia, aby kontynuować pracę.

Częste pytania

Co to jest Brainfuck?
Brainfuck to minimalistyczny język programowania ezoterycznego z zaledwie ośmioma poleceniami, zbudowany wokół taśmy komórek pamięci i jednego wskaźnika. Jest popularny jako ciekawostka i wyzwanie w code-golfie, nie dla rzeczywistych programów.
Dlaczego wygenerowany program wygląda inaczej za każdym razem, gdy zmieniam rozmiar komórki?
Rozmiar komórki określa, jaką wartość każdy znak jest przechowywany. Komórki 8-bitowe przechowują jeden bajt UTF-8, więc akcent lub emoji wymaga kilku komórek; komórki 16-bitowe i 32-bitowe mogą przechowywać cały znak naraz, co zmienia zarówno wartości, jak i najkrótszą ścieżkę do nich.
Co się stanie, jeśli mój program ma nieskończoną pętlę?
Interpreter zatrzymuje się, gdy tylko napotkane limit kroków i zamiast zamrażać stronę, zgłasza, że program nie został ukończony. Zwiększ limit kroków, jeśli program naprawdę potrzebuje więcej kroków, lub napraw pętlę.
Czy działają polecenie przecinka (wejście)?
Narzędzie nie ma oddzielnego strumienia wejściowego dla działającego programu, więc `,` zawsze czyta jako koniec pliku i ustawia bieżącą komórkę na 0 – to samo zachowanie, do którego większość interpretów powraca po wyczerpaniu wejścia.
Czy mój tekst lub kod jest gdzieś przesyłany?
Nie. Kodowanie i uruchamianie programu odbywa się całkowicie w twojej przeglądarce – żaden tekst lub kod, który tutaj wkleisz, nie jest nigdy wysyłany na serwer.