Mais um blog inútil.

Abril 7, 2009

Arvorezinha – Brainfuck

Filed under: Arvorezinha — falso @ 23:29

Ola de novo!

Hoje fui desafiado a fazer a arvorezinha em brainfuck. Portanto aqui vai:

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

Agora por blocos para gente normal entender:

Começa se no registo 0
++++ Define r0 a 4
[ - enquanto o registo actual não for 0, entra no ciclo
>++++++++++ anda para o registo 1 e soma-lhe 10
< volta para o registo anterior r0, e retira-lhe 1 ] repete ate r0 = 0 >++ vai-se para o r1 e soma se 2 - e está o valor 42 (asterisco em ascii) no r1
. manda imprimir

>+++++++++++++ Move-se para o registo 3 e incrementa-se 13 nele (newline)
. manda imprimir

E com isto já temos "*\n" feito... Continuando
< <++ voltamos a r0 e incrementamos 2, r0 = 2 [ se r0 != 0 entro >.< - move-se para o r1 e imprime *, volta para o r0 e decrementa ]>>. repete ate r0 igual a 0, e a seguir manda anda duas posicoes para a direita, vai parar a r3 e imprime uma newline.

Depois o resto é so repeticao

< <+++[>.< -]>>. tres asteriscos e um newline
< <++++[>.< -]>>. quatro asteriscos e um newline
< <+++++[>.< -]>>. cinco asteriscos e um newline

Eu acho que isto é uma maneira meio lame de fazer, porque os prints estão pré definidos. Tentei fazer o mesmo algoritmo que o do assembly, mas falhei miseravelmente. Ofereço um queijo a quem conseguir. Aproveita agora esta oportunidade de te tornares um homem de barba rija!!!

Podem testar o codigo neste Javascript Brainfuck Interpreter / Debugger online ou usar o magnifico Brainfuck developer.

8 comentários a “Arvorezinha – Brainfuck”

  1. fuck diz:

    lolol
    e gajas????

  2. luminoso diz:

    epic win
    ja criavas o padrao de arvorezinha no google code ou assim

  3. Dcoder diz:

    Toma la uma versão 58% mais 'eficiente':

    +++++++[>++++++<-]++++++++++
    >.<.>..<.>...<.>....<.>.....
    
  4. Pedro diz:

    porra! e eu k só acreditava depois de ver... 8|

  5. plastik diz:

    AMO-TE!

  6. Pedro diz:

    só mesmo pa malucos: "calculadora" em bf (algoritmo da adição made in wikipedia... -.-)
    ++++++++[>+++++++++++. mostra Q
    +++++++++.
    ----------. a
    +++++++++++. l
    ----------------. espaco
    ++++++++++++++++. o
    -------------------. outro espaço
    ++++++++++. p
    ++.r
    ---------.i
    ++++.m
    --------.e
    ++++.i
    +++++++++.r
    ---.o
    -------------------. espaco
    ++++++++++++++++++.n
    +++++++.u
    --------.m
    ----------++++. ?
    >++++++++++. newline

    >
    ler o 1º,>++++++[-]
    ler o 2º,[-]<.

  7. [...] Ora viva amigos! Para quem duvidou, aqui está a arvorezinha em Malbolge (provavelmente a linguagem de programação mais difícil de todos os tempos), versão lame, sem ciclos, só prints. Como a versão em brainfuck. [...]

Comentar

widgeon
widgeon
widgeon
widgeon