rustingcrab

Cleuton Sampaio

VEJA NO GITHUB

Link para esse projeto

O Jogo da Vida de Conway: Uma Simulação de Vida Artificial em Rust

Criado pelo matemático britânico John Horton Conway em 1970, o Jogo da Vida é um autômato celular que simula a evolução de uma população de “organismos” em uma grade bidimensional, seguindo regras simples. Apesar do nome, não é um jogo tradicional: não há jogadores, e o sistema evolui autonomamente a partir de uma configuração inicial, revelando padrões complexos e surpreendentes.

Regras Básicas

Cada célula na grade pode estar viva ou morta, e seu estado futuro é determinado pelo número de vizinhos vivos:

  1. Solidão: Uma célula viva com menos de 2 vizinhos morre (subpopulação).
  2. Superlotação: Uma célula viva com mais de 3 vizinhos morre (superpopulação).
  3. Sobrevivência: Uma célula viva com 2 ou 3 vizinhos permanece viva.
  4. Nascimento: Uma célula morta com exatamente 3 vizinhos torna-se viva.

Os “vizinhos” são as 8 células adjacentes (horizontal, vertical e diagonal).

Comportamentos Emergentes*

A simulação gera padrões dinâmicos a partir dessas regras simples:

Importância Científica

O Jogo da Vida é um marco na teoria da computação e na biologia teórica:

Aplicações Práticas

Curiosidades

Em resumo, o Jogo da Vida é uma janela fascinante para a complexidade emergente, mostrando como a vida (mesmo artificial) pode surgir de regras mínimas e determinísticas.

Sobre a implementação:

O código fonte é ESTE

Configuração Básica

Inicialização

  1. Células Aleatórias:
    • 25% das células começam vivas (em verde), geradas aleatoriamente.
  2. Glider Central:
    • Um padrão móvel (glider) é adicionado no centro da grade para garantir movimento inicial.
    • Formato:
      ███
        █
       █
      

Lógica do Jogo

  1. Vizinhança:
    • Cada célula verifica suas 8 células adjacentes (incluindo diagonais).
    • Fronteiras são fixas: células na borda não “enxergam” o lado oposto.
  2. Regras de Atualização:
    • Sobrevivência: Células com 2 ou 3 vizinhos permanecem vivas.
    • Morte: Células com menos de 2 ou mais de 3 vizinhos morrem.
    • Nascimento: Células mortas com exatamente 3 vizinhos tornam-se vivas.

Renderização

  1. Centralização:
    • A grade é centralizada na janela, independente do tamanho da tela.
    • Cálculo dinâmico de posição usando as dimensões da janela.
  2. Visual das Células:
    • Células vivas: Quadrados verdes com 1px de espaçamento entre eles.
    • Fundo: Preto.

Controle de Tempo

Tecnologias Utilizadas

Fluxo de Execução

  1. Inicialização:
    • Cria janela 800x600 pixels.
    • Preenche a grade com células aleatórias e o glider central.
  2. Loop Principal:
    • Atualização: Recalcula o estado das células no intervalo configurado.
    • Desenho: Renderiza todas as células vivas na posição correta.

Padrões Esperados

Esta implementação combina simplicidade e eficiência, demonstrando como regras mínimas podem gerar comportamentos complexos, fiel ao espírito original do Jogo da Vida de Conway.