Witam wszystkich ;)
Ostatnio strasznie mi się nudziło, więc przez ostatnie 5 dni pisałem własny prosty "język programowania" oparty na BeFunge.
W paczce jest edytor (wraz z prostym debuggerem i kodem źródłowym), krótki poradnik oraz .... konkurs.
Zamieszczając post w tym dziale liczę po części na ocenę kodu, który napisałem (jakoś nie chciało mi się komentować, ale liczę na to, że dacie radę się w nim zorientować ;)), a po części także na to, że ktoś się tym zainteresuje i spróbuje swoich sił w moim konkursie.
Edytor napisany jest w Delphi, lecz sama biblioteka będąca interpreterem w Lazarusie (na początku także chciałem napisać edytor w Lazarusie, ale przegrałem walkę z SynEditem).
A powracając do konkursu - należy rozpracować ten kod:
v>v>>:1av*:l1a'18'62j27'15' @#< >062j
&& /j260_"> ^"04p042j>">3> > > >"00p002j ^_^#N=d::/*,<
>^*^<>"Stage 1 finished :> 3 more to go.",Nv>"Almost ;)"^
>2^^v / 3 #<^#p3'15'">"<>062j
<><><>>>v<><>>"Stage 2 finished :> 2 more to go.",Nv^ | $ <
>072j >::d=|j21'25' < >^ '100'
"Failed :<",@>062j>"Stage 3 finished :> 1 more to go.",N>>^
"Success! :D",@>:l\:'220000'-l\2;\//'18'0gd/d:'13'a*v
>>V/*:d\-'100'*'25'v v3< < <
j270_062j >*:'9000000'`!|
>082j
Dokładniej: kod prosi użytkownika o dwie liczby i wykonuje na nich czarną magię, po czym jeżeli wprowadzone liczby wytrzymały tortury, wyświetlana jest informacja `"Success! :D"` (od razu mówię, iż wprowadzenie dwa razy zera nie jest poprawnym rozwiązaniem, trzeba cały kod przeanalizować i podebugować (w edytorze jest kolorowanie składni i parę innych rzeczy, które to ułatwią)). Jest wiele liczb spełniających ten kod, lecz pomimo wszystko nie radzę brute-forceować ;) Kto wyśle więcej liczb, niebędących kolejnymi po sobie, a będących poprawnymi, wygra ... e.... satysfakcję z rozpracowania kodu :D
Wszelkie rozwiązania proszę pisać na moje PW, a oceny kodu jak i samego edytora, proszę pisać w tym temacie.
Czas konkursu: od teraz do odwołania.
Pozdrawiam :)
PS: ten kod na pierwszy rzut oka jest rzeczywiście czarną magią (chyba, że ktoś masowo pisze w językach ezoterycznych pokroju BeFunge), lecz - jak już napisałem wcześniej - w paczce w załączniku znajduje się krótki tutorial oraz parę dem, więc chyba się odnajdziecie ;)
PS2: jeżeli pomysł się sprawdzi, być może zorganizuje więcej konkursów tego typu.
- MLang.zip (838 KB) - ściągnięć: 144