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ę abortopcję, aby program zatrzymał się, jeśli przekroczy on granice.
.. Wygrałem.