Como primeiro lançamento da x99, isto não é algo que eu chame de "original", muito menos de "jogo", mas valeu a pena para um programador não muito habilidoso como eu. Eis HexLife: um Life em um campo hexagonal.
|
Vejo vários morceguinhos e morcegões nesta imagem. |
Life é bastante conhecido entre matemáticos e computeiros. Consiste em definir o estado inicial ("vivo" ou "morto") de células e acompanhar sua evolução. Elas alteram seu estado dependendo de suas vizinhas. Foi relativamente simples de implementar. A dificuldade neste projeto foi justamente fazer isso em uma grade hexagonal. (seria perfeito se os pixels fossem hexágonos)
Pesquisei por formas de representar uma grade hexagonal, mas nenhuma das que eu encontrei era "legal" o bastante. Então desenvolvi minha própria solução, que se eu tentar explicar, teria que escrever um artigo. Resumidamente, as células são representadas por coordenadas "polares": são identificadas pela distância à célula central e a um índice de rotação. Isto facilita o cálculo de distância entre células, a determinação de células adjacentes, e o cálculo da célula correspondente a uma determinada posição da tela, só para listar algumas vantagens, embora alguns métodos usados não pareçam muito eficientes. Pode ser até que ele rode bem devagar na sua máquina, mais por causa da renderização da imagem do que pelos métodos em si.
Enfim, chega de baboseira técnica. Baixe o programa e divirta-se com suas sessões de hipnose. Mas atenção: não me responsabilizo por qualquer dano causado pelo mau uso deste aplicativo.
Download (Windows)