Para uma ocasião especial

Desenvolve um clone de Tetris em 2 horas. O meu desafio para todos os programadores de vibração 🎮

Muitas pessoas conhecem o Tetris como um jogo cult dos anos 80. Mas na comunidade de desenvolvedores, ele é considerado uma espécie de "Hello World" do desenvolvimento de jogos.

Ein Tetris-Klon in Aktion.

Por quê?

  • As regras são simples, mas completas.
  • Você precisa implementar a mecânica básica: Campo de jogo, colisões, rotação, pontos, níveis.
  • É pequeno o suficiente para que você possa concluí-lo em uma noite, mas grande o suficiente para que você acabe com um jogo "real" nas mãos...

Minha experiência: Tetris em 2 horas, sem nenhuma IA

Há alguns anos, lancei a mim mesmo o desafio: Posso reconstruir o Tetris do zero?
A resposta: Sim - e em apenas duas horas.

Naquela época, desenvolvi meu clone no QB45 (QuickBASIC 4.5), totalmente manual, sem IA ou estruturas. O resultado é um Tetris totalmente funcional com todos os elementos básicos:

  • queda de pedras
  • rotação
  • Apagar linhas
  • Pontuação e fim de jogo

E o melhor de tudo: o momento em que o primeiro Tetromino "colide" com a borda e a lógica do jogo entra em ação - não tem preço!

O desafio para você 🚀

Agora é a vez de vocês, queridos codificadores da Vibe:

Criem seu próprio clone do Tetris em no máximo 2 horas. Não importa se você usa QuickBASIC, Python, JavaScript ou Unity. O importante é que você consiga jogar!

Compartilhe seu resultado, suas capturas de tela ou o código-fonte. Estou curioso,

  • como você resolve a lógica do jogo,
  • quais recursos você absolutamente precisa incluir (por exemplo, próxima peça, pontuações altas, queda difícil),
  • e se você é mais rápido do que eu era na época.

Pseudocódigo para você começar 🧩

Para que ninguém comece do zero, aqui está um pequeno trecho de pseudocódigo que mostra a ideia básica:

initialise board[10][20] = empty select random tetromino as currentPiece loop as long as game is running: input = read_keyboard() if input = LEFT: currentPiece.x -= 1 if input = RIGHT: currentPiece.x += 1 if input = ROTATE: rotate currentPiece if input = DROP: currentPiece.y += 1 if collision(currentPiece, board): currentPiece.y -= 1 fix currentPiece in the board remove full lines currentPiece = random new tetromino draw board + currentPiece wait (tick depending on level)

Com exatamente essa estrutura básica, você pode criar rapidamente um jogo executável.

Com pressa

Programar Tetris não é ciência de foguetes, mas é exatamente isso que o torna tão atraente.

É uma introdução ideal ao mundo do desenvolvimento de jogos e um desafio de codificação perfeito para você colocar suas habilidades à prova.

É assim que você participa:

Qual de vocês consegue programar Tetris em 2 horas? 💻🎮

Conecte-se comigo no LinkedIn - você pode encontrar meu perfil na caixa abaixo, clicando no meu nome.

Envie-me seus links do GitHub e capturas de tela via PN. Estou ansioso para ver seus resultados! 🚀

Sobre o autor
Fundador e Diretor Executivo da Langmeier Software
Não quero complicar nada. Não quero desenvolver o melhor software empresarial. Não quero ser incluído numa lista de tecnologia de ponta. Porque não é disso que se tratam as aplicações de negócios. Trata-se de garantir que os teus dados estão perfeitamente protegidos. E trata-se de garantir que tudo funciona sem problemas enquanto mantém o controlo total e se pode concentrar no crescimento do seu negócio. A simplicidade e a fiabilidade são os meus princípios orientadores e inspiram-me todos os dias.