Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Na forum nic o tym nie znalazłem, a temat jak najbardziej ciekawy, nie mam co robić więc napiszę parę słów, może kogoś to zainteresuje :P

Brainfuck to jeden z języków ezoterycznych, czyli najprościej mówiąc takich, które nie są przeznaczone do programowania, co najwyżej do jakichś badań lub po prostu zabawy :D Głównym celem jego stworzenia miała podobno być jak najmniejsza ilość instrukcji i jak najmniejszy kompilator, przy czym język miał być zupełny w sensie Maszyny Turinga. Z nią też można skojarzyć Brainfucka - jego działanie można sobie wyobrazić bardzo podobnie: jest taśma składająca się z komórek, nad nią głowica, która może się poruszać w prawo lub w lewo, dodawać lub odejmować jedynkę w komórce, nad którą się znajduje. Jeśli wypisujemy zawartość komórki, jest ona reprezentowana znakiem odpowiadającym jej znakowi z tablicy ASCII, np. 97 dla "a".

Instrukcje:

>     Przesuwa głowicę w prawo
<     Przesuwa głowicę w lewo
+     Dodaje 1 do wartości komórki pod głowicą
-     Odejmuje 1 od wartości komórki pod głowicą
,     Pobiera jeden znak z wejścia i zapisuje w bieżącej komórce (w ASCII)
.     Wyświetla znak (ASCII) z bieżącej komórki na wyjściu
Pętla:
[     Jeśli wartość bieżącej komórki równa jest zeru, przechodzi za odpowiadający ]
]     Przechodzi do odpowiadającego [

Jak widać cel twórców został spełniony :D
Taka ilość instrukcji powoduje, że napisanie czegokolwiek jest cholernie mozolne i trudne, a nazwa języka jest całkowicie zrozumiała :rolleyes:

Tutaj macie interpreter online Brainfucka:

http://esoteric.sange.fi/brainfuck/impl/interp/i.html


Próbowałem cokolwiek w tym zrobić, jednak nawet wypisanie "hello world!" jest... dziwne? xD Mój hello world wygląda tak:

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
---.
+++++++..
+++.
>
++++++++++++++++++++++++++++++++.
<
++++++++.
--------.
+++.
------.
--------.

 



Na szczęście wygooglować takie rzeczy to nie problem, dla przykładu zarzucę "porządny" kod "hello world":

 

 

++++++++++
[>+++++++>++++++++++>+++>+<<<<-]
>++.
>+.
+++++++.
.
+++.
>++.
<<+++++++++++++++.
>.
+++.
------.
--------.
>+.
>.

 

 

 

Moje inne "dzieło" to program, który wypisuje na wyjściu zawartość wejścia:

 

 

,.[,.]

lub 

,[.,]

 

 

 

Oraz bardzo prosty program, który szyfruje/deszyfruje tekst:

 

 

,[+.>,]
szyfrowanie

,[-.>,]
deszyfrowanie

 

 

 

Jeśli jeszcze nie trzasnęliście drzwiami to zachęcam do prób napisania czegoś ciekawego ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...