Wszyscy znamy, a przynajmniej słyszeliśmy o pieprzeniu mózgu , jednym z najbardziej znanych i wpływowych języków ezoterycznych. Podczas gdy obecnie większość implementacji używa nieskończonej taśmy, oryginalny kompilator Urban Müller miał taśmę 30000 komórek. Mało znanym faktem * jest to, że na końcu taśmy znajduje się specjalna wartość, z którą prawie nigdy nie wchodzi się w interakcję w typowym programie do pieprzenia mózgu.
Chociaż możesz wydrukować tę wartość za pomocą 29999 >
si A .
, brainfuck jest znany z krótkich i zwięzłych rozwiązań, więc Twoim celem jest wydrukowanie tej wartości z minimalną liczbą znaków.
*fikcja
Zasady:
- Odświeżenie instrukcji pieprzenia mózgu:
+
/-
: Zwiększanie / zmniejszanie bieżącej komórki, zawijanie od 255 do 0, gdy 255 jest zwiększane i odwrotnie<
/>
: Przesuń wskaźnik w lewo / w prawo na taśmie.
: Wydrukuj wartość bieżącej komórki.[
: Przejdź do odpowiedniego,]
jeśli wartość w komórce wynosi 0]
: Przejdź do odpowiedniego,[
jeśli wartość w komórce nie jest równa 0
- W tym przypadku
,
(Pobierz dane wejściowe) nic nie robi, ponieważ oryginalny kompilator pozostawia komórkę bez zmian w EOF, a ten program nie powinien otrzymywać żadnych danych wejściowych. - Taśma jest początkowo wypełniona wszystkimi zerami, z wyjątkiem komórki 30000, która zawiera nieznaną wartość
- Wskaźnik zaczyna się od komórki 1 i powinien kończyć się na komórce 30000 po wydrukowaniu go.
- Komórki po lewej stronie 1 i po prawej stronie 30000 mają niezdefiniowane zachowanie, więc rozwiązania nie powinny odwiedzać tych komórek.
- Należy zauważyć, że wartość na 30000
tomoże być 0, więc po prostu zapętlenie aż trafisz niezerowej komórka nie będzie działać. - Powinieneś wydrukować tylko wartość z komórki 30000
- Najkrótsze rozwiązanie wygrywa!
- Tie-breaker jest bardziej wydajnym programem (wykonuje się w najmniejszej liczbie kroków), po którym następuje najszybszy czas przesyłania.
Wskazówka: Esolanging Fruit sugeruje użycie https://copy.sh/brainfuck do przetestowania kodu. Specyfikacje są zgodne z opisem w tym wyzwaniu i możesz wybrać tę abort
opcję, aby program zatrzymał się, jeśli przekroczy on granice.
.
. Wygrałem.