PplWare Mobile

Curiosidade – Que fazem as 19 linhas de código?

                                    
                                

Este artigo tem mais de um ano


Autor: Pedro Pinto


  1. PorquinhoBranco says:

    epa, eu nao percebo nada de programçao, mas ao menos podiam ter mudado o nome da imagem com as linhas de codigo! É que ao passar com o rato por cima da imagem, aparece-me logo o “balao” com o nome da imagem, neste caso “teris code”, e a primeira palavra que me veio a cabeça parecida com esta foi “teris” foi “tetris”, e voilá, quando abri o artigo, era mesmo um jogo de tetris!!!

  2. “O jogo coloca a disposição do utilizador 6 teclas que permitem manipular as peças e realizar algumas acções. 16 linhas de código? Fantástico !”

    Correcção de 16 linhas para 19 linhas de código.

    Bom trabalho,
    Cumps

  3. Olly says:

    Atenção ao português!
    Sei que é tempo de férias e todos os minutos são preciosos para descansar mas um texto bem redigido é meio caminho andado para um sítio de qualidade e não nos custa nada reler o texto antes de publicar.

    “comtemplado com o melhor desenvolvido jogo”
    contemplado com o prémio de melhor jogo desenvolvido

    “manda-mos complicar o código fonte”
    mandamos compilar o código fonte

    Aparte disto, muito bom (o código), os meus parabéns ao autor do Micro Tetris. Um exemplo das mentes brilhantes que temos por cá!

  4. Marisa Pinto says:

    Isso parece ponto de cruz! eheh

  5. Olhando com mais atenção, reparei que tem 19 linhas de código realmente, mas não tem 19 instruções nem coisa parecida correcto?

    Cumps,

  6. Jorge Franco says:

    Muito bom mas isso não são 19 linhas , vamos la quebrar isso e programar indentado =)

  7. Dust Bunny says:

    Estranho. Na minha máquina de 64bits não compila…
    Por outro lado, no pc de 32bits funcionou perfeitamente 🙂
    Estou fascinado. O único tetris que escrevi tinha muito mais código.

    • lmx says:

      nem pode,
      visto que faltam os includes.
      stdlib,stdio,possivelmente time, signal,
      a função getlogin() não existe a não ser que esteja dessimulada,entre outras existem variaveis que também não?! não era esse o objectivo?!Vocês colocaram o codigo todo??epa ha uns tempos que não mexo nisto, mas…

      cmps

      • Pedro Pinto says:

        Experimenta la, a ver são não funciona 🙂

        • lmx says:

          boas,
          para ja não esta a bombar mas deve ter a ver com os parametros que tenho MINGW no codeblocks ainda por cima fiz uma instalação da nova versão e ja não me lembrava, quando puder vejo e posto resultado. 😛

          cmps

          • lmx says:

            boas, la consegui apos alguns malabarismos por isto a bombar, mas este código não deve estar de acordo com o standard que eu uso o ansi89.
            quase de certeza tenho uma serie de warnings e para correr isto, bem…mas ja corre.

            cmps

  8. João says:

    Que identação terrível. Se não tivessem dado a resposta, ficaria surpreso se alguém tentasse ver tal coisa… É inaceitável para se apresentar :S

  9. David says:

    Ish era fácil…!!! Mas estava sem paciência xD Estou de férias lol

  10. Jose says:

    Se o código tivesse organizado passava as 19 linhas na boa.

    Um dos pontos é clareza, uma coisa que isso não tem :b

  11. Luis Leite says:

    Post engraçado Pedro.
    Olhando para o codigo assim nunca diria que era o jogo de tetris, tive mesmo que continuar a ler

    Bom post 🙂

  12. kwimerA says:

    Entender as instruções é fácil, difícil é entender a maneira de pensar de quem programou isto. Custa tanto pensar quando se tá de férias… uma identação bonita ajudava muito.. mas lá se iam as 19 linhas de código!
    Ainda eu me queixo de quando vejo algoritmos que fiz há algum tempo e apesar de ter tudo comentado tou meia hora a entende-los.

  13. transik says:

    comeq testo isto no mac? 😀

  14. kurayama says:

    gcc tetris.c -o tetris -arch i368
    Isto no leopard/snow

  15. avlis rotiv says:

    Fascinante! o.O

  16. Fantástico. O que 19 linhas fazem…

  17. wolfytuga says:

    Olá Pplware!

    Tenho uma curiosidade quanto à compilação, não será da seguinte forma:

    gcc -o tetris tetris.c

    Ou é possíveis fazer isto da forma que vocês indicam e da forma que indico?

    Cumps,
    wolfytuga

  18. rms says:

    Bem, eu compilei o supracitado código como costumo compilar os meus bichos em C99:

    gcc -Wall -Wextra -pedantic -Winit-self -Wfloat-equal -Wdisabled-optimization -Winvalid-pch -Wmissing-noreturn -Wlogical-op -Wmissing-prototypes -Waggregate-return -Wconversion -std=c99 -Os -Q -g0 tetris.c -o tetris

  19. Hawk says:

    Apareceram mensagens de erro aqui na hora da compilação:

    tetris.c:1: warning: data definition has no type or storage class
    tetris.c: In function ‘u’:
    tetris.c:6: warning: incompatible implicit declaration of built-in function ‘printf’
    tetris.c: In function ‘main’:
    tetris.c:16: warning: incompatible implicit declaration of built-in function ‘printf’
    tetris.c:18: warning: incompatible implicit declaration of built-in function ‘fprintf’
    tetris.c:19: warning: passing argument 1 of ‘fprintf’ makes pointer from integer without a cast
    tetris.c:19: note: expected ‘void *’ but argument is of type ‘int’
    tetris.c:19: warning: format ‘%s’ expects type ‘char *’, but argument 5 has type ‘int’

    O que devo fazer?

  20. Nuno says:

    Brutal! Funciona !

  21. Pedro Correia says:

    Isto não são 19 linhas… É apenas 1 linha… Mas com muitas instruções, qualquer programa pode ter só 1 linha mesmo.

    De qualquer forma, está bastante interessante!

  22. MrMello says:

    Serei o único que não consegue compilar por ter 2erros? =S
    Ainda tentaria ver onde estava o problema,mas com esta compressão de linhas. x)

    tetris.c:1: warning: data definition has no type or storage class
    tetris.c:1: warning: cast from pointer to integer of different size
    tetris.c:1: error: initializer element is not constant
    tetris.c:1: error: (near initialization for ‘v[0]’)
    tetris.c: In function ‘u’:
    tetris.c:6: warning: incompatible implicit declaration of built-in function ‘printf’
    tetris.c: In function ‘main’:
    tetris.c:16: warning: incompatible implicit declaration of built-in function ‘printf’
    tetris.c:18: warning: incompatible implicit declaration of built-in function ‘fprintf’
    tetris.c:19: warning: passing argument 1 of ‘fprintf’ makes pointer from integer without a cast
    tetris.c:19: note: expected ‘void *’ but argument is of type ‘int’
    tetris.c:19: warning: format ‘%s’ expects type ‘char *’, but argument 5 has type ‘int’

  23. camurso_ says:

    alguém me pode dizer onde, no código, é que está a ser “desenhado” o help?

  24. José Fonseca says:

    Extraordinário!!!!

  25. para distros de 64 bits deve-se instalar o multilib e adicionar a flag “-m32”

    eu tb consigo fazer o “age of empires” numa linha.

    experimentem fazer “indent tetris.c” é curioso…

  26. Patrick Veiga says:

    Oh meus caros… Ponde isso num exame de programação e vede quem é que corrige isso. São 19 linhas mas acho que para ser mais complicado podiam ter metido tudo numa…
    Claro que se a cada ‘;’ e { dermos um enter aí já conseguimos olhar de primeira para o ficheiro e ver a estrutura …. O que está aí é o mesmo que tentar contar espaguete num prato depois de servido

  27. Jose Simoes says:

    Faço o mesmo em muito menos linhas

    Basta-me usar um editor com mais colunas.

  28. Eleck says:

    fds, 19 linhas? isso assim quem vê até parece dificil, mas só o é dificil de ler.

    Identar o código e depois parece ginja

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.