Soutěž: Machr na algoritmy - Brainf***
Zadání
Tentokrát si zasoutěžíte v práci s ezoterickým jazykem jménem
Brainfuck. Pokud ho někdo nezná, základní informace najdete např. tady: https://esolangs.org/wiki/Brainfuck .
Machr bude rozdělen na 2 samostatné části (každá bude hodnocena zvlášť,
můžete se zúčastnit obou naráz):
- V první části bude vaším úkolem v tomto jazyce napsat několik prográmků - kratší program = více bodů
- šifrovací program: na vstupu dostane šifrovací klíč a zprávu stejné délky, a to následujícím způsobem - kzkzkzkzkz... kde k je znak klíče a z je odpovídající znak klíče. Šifrovat se bude posunem o hodnotu znaku klíče (jako u Vernamovy šifry - https://cs.wikipedia.org/…a_%C5%A1ifra )
- dešifrovací program: stejný jako předchozí, jen místo zprávy dostany její zašifrovanou podobu a má za úkol vypsat původní zprávu
- vypsání všech znaků, které lze vypsat (hodnoty 0 - 255)
- rozepsání vstupu - každý znak na nový řádek
- vypsání vstupu ukončeného znakem ! (např. pro vstup Hello!World se vypíše jen Hello)
- lepší šifrovací program: vstup bude ve tvaru klíč!zpráva, zpráva a klíč budou stejně dlouhé
- dešifrovací program pro předchozí bod
Pozn. Prográmky můžete testovat např zde: http://brainfuck.tk/
Pozn 2. za konec řádku bude považován znak s kódem 10, konec vstupu
(EOF) je 0, program bude mít k dispozici 30 000 bajtů bez znaménka (hodnoty 0
- 255)
- Druhou část bude tvořit napsání interpreteru brainfucku v jednom z následujících jazyků: C#, Java, C++, Visual Basic. Úkolem je napsat ho co nejjednodušeji, nicméně musí splňovat následující podmínky:
vstup čte ze souboru, výstup vypisuje do konzole / souboru, umožňuje přetečení a podtečení hodnot, bude splňovat 2. poznámku z 1. části
Pro jakékoli dotazy je dost místa v komentářích.
Pozn.: Prosím odevzdávejte to v zazipované složce, ať to nemusím rozbalovat nějakou webovou službou
Výhra
Vítěz dostane placku Machr na algoritmy a ocenění do portfolia.
Výsledky
Jméno | bodů | Řešení ( Stáhnout vše ) |
---|---|---|
tomisoka | 20 | Stáhnout řešení |
Matěj Kripner | 20 | Stáhnout řešení |
Bratr | 14 | Stáhnout řešení |
rikenbekr | 7 | Stáhnout řešení |
Jan Lupčík | 0 | Stáhnout řešení |
Patrik Valkovič | 0 | Stáhnout řešení |
Zobrazeno 36 zpráv z 36.