Ugrás a tartalomhoz
100% helyi

Brainfuck enkóder

Alakíts szöveget olyan Brainfuck programra, amely visszanyomtatja, vagy futtass egy Brainfuck programot és lásd annak kimenetét.

Bemenet
Kimenet

Brainfuck enkóder

Illeszd be a tetszőleges szöveget, és ez az eszköz egy olyan Brainfuck programot ír, amely azt pontosan visszanyomtatja, soronként egy karaktert. Ez fordítva is működik: illeszd be a Brainfuck programot, és az eszköz futtatja, megmutatva, hogy mi a kimenete. A mód lehetőséggel váltogathatasz a kettő között, vagy használd az értékcsere gombot a generált program közvetlen bevezetéséhez az interpreterbe.

Kapcsold be az "Hossz optimalizálása ciklokkal" lehetőséget, hogy a generált program rövidebb legyen: az + ismétlése helyett 255-ször egy karakter esetén, az eszköz egy kis szorzási ciklus segítségével építi fel az értéket, ami nagyobb szövegeknél számít. A cella mérete szabályozza, hogy az egyes karakterek hogyan tárolódnak — a 8 bites a klasszikus byte-per-cella Brainfuck, amely megfelel a valós interpretáló programoknak és az UTF-8 szövegeknek, míg a 16 bites és 32 bites cellák egy teljes kódpontot tárolhatnak cellánként, így az ékezetes betűk és emoji-k tisztán oda-vissza kerülnek extra bájtok nélkül. A szalag cellái beállítják, hogy az interpreternek hány memóriacellája van, és a lépések korlátja megakadályozza, hogy egy furcsa ciklus lefagyassza az oldalt — emelje meg a lépések korlátját, ha a program valóban több lépésre szorul, vagy csökkentse azt, miközben tesztel valamit, amit még nem bíz meg. A "Szalag állapota a futtatás után" lehetőség a memóriacellák pillanatfelvételét fűzi hozzá, miután a program befejeződik, amely hasznos a ciklus hibakereséshez, amely nem adja az elvárt kimenetet. A generált kód egy rögzített sorszélességhez is csomagolható az olvashatóság kedvéért; a Brainfuck figyelmen kívül hagyja a szóközt és bármely karaktert, amely nem az nyolc parancs egyike, így a csomagolás soha nem változtatja meg a program működését.

A nagyon hosszú bemenet hosszabb programot produkál, és mindkét irány korlátozva van, így a böngészőlap soha nem fagy meg a véletlen futó bemenet vagy egy végtelen ciklus miatt — világos üzenetet kap arról, hogy mit kell módosítania, ahelyett, hogy lefagyott oldal lenne.

Minden helyileg a böngészőjében fut; a szöveg vagy kód soha nem kerül feltöltésre sehova. Másold a risultátumot, töltsd le .txt fájlként, töröld ki az ablakot, vagy küldd vissza a kimenetet közvetlenül a bemenetbe, hogy továbbfoglalatod a munkát.

Gyakori kérdések

Mi a Brainfuck?
A Brainfuck egy minimális esotérikus programozási nyelv, amelynek csak nyolc parancsa van, és egy memóriacella-szalag és egyetlen mutató köré építkezik. Kuriózumként és kód-golfozási kihívásként népszerű, nem valós programokra.
Miért néz ki másképp a generált program, ha megváltoztatom a cella méretét?
A cella mérete meghatározza, hogy az egyes karakterek milyen értékként tárolódnak. A 8 bites cellák egy UTF-8 bájtot tárolnak, így az ékezetes betűk és emoji-k több cellát igényelnek; a 16 bites és 32 bites cellák egy teljes karaktert tárolhatnak egyszerre, amely megváltoztatja az értékeket és azok eléréséhez szükséges legrövidebb útvonalat.
Mi történik, ha az én programomnak van egy végtelen ciklusa?
Az értelmező rögtön leáll, amikor eléri a lépések korlátját, és azt jelenti, hogy a program nem fejeződött be, ahelyett, hogy lefagyasztaná az oldalt. Emelje meg a lépések korlátját, ha a program valóban több lépésre szorul, vagy javítsa meg a ciklust.
Működik-e a vessző (bemenet) parancs?
Az eszköznek nincs külön bemeneti adatfolyama egy futó programhoz, így a ',' mindig a fájl végét olvassa és az aktuális cellát 0-ra állítja — ugyanaz az működés, amelyre a legtöbb értelmező visszavonul, amint az bemenet elfogyott.
A szövegemet vagy kódomat feltöltik valahova?
Nem. A kódolás és egy program futtatása teljes egészében a böngészőjében történik — semmi, amit ide beillesztesz, soha nem kerül el egy szerverhez.