GWT e o Jogo da Vida

Share

Nem sempre conseguimos o tempo necessário, o projeto ideal ou conjunção de astros que favoreça a experimentação das novas tecnologias que pipocam a toda hora na área de desenvolvimento de software. A boa e velha programação “for fun”, na época em que as CPU, Microsistemas e Inputs roubavam boas horas de codificação para ver um astronauta fugindo de morcego marciano ficaram apagadas em favor da produção da indústria de software (queria um Instant Imperial March. Mas como não tem, fica com esse aqui).

Mas enfim, em dias de grandes sucessos do cinema 2.0 como “JavaScript Strikes Back”, “JQuery, Encolhi o Source!” e “Flash of Titans” a vida é, e sempre será, uma caixinha de surpresas: surgiu um novo projeto que vai exigir uso de RIA‘s! Então este é o primeiro de uma séries de posts sobre meus protótipos inúteis, cheios de firulas e guere-gueres que podem floplar em seu browser tal qual um colchão selvagem dos pântanos de Squornshellous Zeta. E vamos começar com o GWT!

Google Web Toolkit

A aplicação foi feita em uma noite de insônia usando o Google Web Toolkit. O conjunto de ferramentas GWT permite criar interfaces ricas para web, só que programando na linguagem Java e compilando o código para JavaScript. A instalação do Plugin GWT no Eclipse é muito simples e o tutorial já dá uma boa ideia de como trabalhar com os recursos mais simples.

O aplicativo implementa uma versão do Jogo da Vida de John Conway, tido como uns dos problemas de computação que mais consumiu recursos computacionais e atenção de cientistas para fins, digamos, duvidosos divertidos. A idéia é bem simples, em um tabuleiro quadriculado, um quadradinho vermelho significa uma célula viva. A cada geração seguinte temos que o estado da célula muda da seguinte forma: ela continua viva se tiver dois ou três células vizinhas vivas; ela morre se tiver nenhuma ou mais que quatro células vizinhas vivas. E uma célula nascerá em um quadradinho se houverem exatamente três células vizinhas vivas.

EDIT: Abaixo a aplicação. De vez em quando dá alguns problemas com cache no Chrome. Um dia descubro o que é ;).

No código fonte eu fui testando alternativas que ficavam mais leves para a simulação sem procurar a teoria tradicional do modelo. Como o código foi montando na marretada, dependendo do número de células a expansão do grid fica um pouco pesada mas não influencia muito na animação. Ainda não tive tempo de usar o novo recurso Speed Tracer que acompanha o GWT 2.0 para achar mais gargalos. O código foi feito em uma madrugada há alguns meses atrás, ainda no GWT 1.4 eu acho. Hoje dei uma repaginada na cara da aplicação e atualizei pro 2.0 durante a viagem de JF para SJN.

Uma grande coleção de padrões pode ser encontrada na aqui. Ah! Para quem achar legal o efeito hipnotizante das populações instáveis, pode procurar comprar um brinquedinho do vídeo aí em baixo:

Game of Life kit – Adafruit Industries from adafruit industries on Vimeo.

Share
Sobre

Um geek ermitão

Publicado em Hobby, Tecnologia

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*