Algoritmo para fazer desenhos 8 bits jogando Tetris

sprites
Eu sempre gostei muito das minhas aulas de algoritmos e compiladores na faculdade. Gostava mais ainda das maratonas de programação, nas quais a gente passava madrugadas tentando criar soluções para problemas elaborados pelos mestres, que tinham como passa-tempo encher nossa cabeça de lógica e cabelos brancos. Mas era divertido. Seria mais, se algum dos exercícios envolvesse o uso de elementos gráficos, como os que existem em jogos de videogame.

E foi exatamente isso que fez Michael Birken, no projeto que chamou de Tetris Printer Algorithm. O programador concebeu um método para fazer com que um computador desenhasse arbitrariamente imagens de 8 bits, alocando estrategicamente os blocos de várias cores para delinear exatamente a imagem desejada.

Pelo que eu vi do código fonte e dos detalhes do algorítimo, trata-se de um software complexo, mas compreensível para quem tem alguns anos de estrada na área de desenvolvimento de software, principalmente para quem trabalha com Java.

Explicando de forma mais técnica: O procedimento converte os pixels de uma imagem em “pedaços” dos blocos de Tetris (da versão do Nintendinho), linha por linha, de baixo pra cima. Para gerar um quadrado individual, o algoritmo monta uma estrutura que consiste de uma região retangular plenamente acoplável, fazendo uso de padrões, “traduzindo” os chamados Tetriminos em blocos de caracteres. Com uma função que computa o coeficiente binomial, cada sprite desejado (que deve ter, no máximo, 17×32 pixels) passa então a ser uma sequência de “letras” a serem exibidas. Cada novo bloco é lido em tempo real, e o sistema se encarrega de deixar apenas o pixel necessário ser encaixado, eliminando linhas e linhas para que estes caracteres sejam mantidos.

master_mario

Pode parecer complicado de entender assim, mas o vídeo abaixo fala por si só:


Michael Birken → Tetris Printer Algorithm

“Are you a Tetris Master? The printer decides.”

Ou seja: Ao girar, posicionando as peças em uma seqüência predeterminada, o algoritmo explora a mecânica de Tetris para gerar imagens bitmap, como os personagens de games da Nintendo.

Algumas pessoas podem achar bobo ou desnecessário perder tempo em um projeto assim, mas é em maratonas como essa que surgem as melhores idéias, acredite.

Fonte: BoingBoing.

Relacionados: , , , , ,

Aproveite nossos cupons de desconto:

Cupom de desconto Asus, Cupom de desconto Frio Peças, Cupom de desconto Mundo da Carabina, Cupom de desconto JBL, Cupom de desconto Costa Cruzeiros, Cupom de desconto Loja do Mecânico, Cupom de desconto Staples