Este projeto é uma implementação em C++ do clássico Game of Life de Conway, utilizando a biblioteca gráfica raylib. O Game of Life é um autômato celular criado pelo matemático britânico John Horton Conway em 1970. Trata-se de um "jogo de zero jogadores", onde a evolução do sistema depende apenas do estado inicial, sem necessidade de interação contínua do usuário.
O objetivo deste projeto é proporcionar uma experiência interativa, permitindo que você explore visualmente o comportamento dos autômatos celulares por meio de diferentes padrões e configurações. Seja você um programador experiente querendo experimentar raylib e autômatos celulares, ou um iniciante curioso sobre a complexidade emergente de regras simples, este projeto é para você!
- Grade Interativa: Clique para alternar células entre vivas e mortas, criando ou modificando padrões facilmente.
- Controle do Fluxo: Inicie, pause ou reinicie a simulação com atalhos de teclado.
- Ajuste Dinâmico de Velocidade: Acelere ou desacelere a evolução das gerações com comandos simples.
- Inicialização Aleatória: Gere padrões iniciais aleatórios para explorar comportamentos inesperados.
- Grade Infinita: Graças ao contorno circular (edge wrapping), os padrões podem atravessar as bordas da grade, simulando um espaço ilimitado.
- Clone o repositório:
git clone https://github.com/Gabryel-lima/GameOfLife.git cd GameOfLife
- Compile o projeto:
Certifique-se de ter o C++ e a raylib instalados.g++ -o game_of_life main.cpp -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
- Execute o programa:
./game_of_life
- Enter: Inicia a simulação.
- Barra de Espaço: Pausa ou retoma a simulação.
- R: Preenche a grade com células vivas e mortas aleatoriamente.
- C: Limpa a grade, deixando todas as células mortas.
- F: Aumenta a velocidade da simulação.
- S: Diminui a velocidade da simulação.
- Clique do Mouse: Alterna o estado (vivo/morto) da célula clicada.
Com esses controles, você tem liberdade total para experimentar diferentes padrões, velocidades e configurações. Explore as possibilidades e descubra os comportamentos emergentes que surgem de regras simples!
Este projeto é uma ótima maneira de aprender sobre autômatos celulares, lógica de programação e gráficos com raylib. Sinta-se à vontade para contribuir, sugerir melhorias ou relatar problemas!
Divirta-se explorando o fascinante universo do Game of Life!