Skip to content

Gabryel-lima/GameOfLife

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CPP Game Of Life with raylib

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.

Objetivo

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ê!

Funcionalidades

  • 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.

Como Executar

  1. Clone o repositório:
    git clone https://github.com/Gabryel-lima/GameOfLife.git
    cd GameOfLife
  2. 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
  3. Execute o programa:
    ./game_of_life

Controles

  • 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!

Sobre

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!

About

Conway's Game of Life

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published