Loading repository data…
Loading repository data…
MariaCampanaP / repository
Implementação em Java de uma versão estendida do Jogo da Vida de Conway, com novos tipos de células e regras personalizadas, desenvolvida como parte de um trabalho acadêmico do 1° bimestre de Linguagens Orientadas a Objetos
Uma releitura do clássico Jogo da Vida de John Horton Conway, programada em Java, com múltiplos tipos de células e comportamentos customizados. O projeto explora os princípios da Programação Orientada a Objetos (POO) de forma prática, didática e interativa.
Este projeto simula um ecossistema celular que evolui ao longo de gerações em um tabuleiro. Cada célula pode nascer, sobreviver ou morrer com base no número de vizinhos vivos - mas com um diferencial: diferentes tipos de células com comportamentos únicos, criando padrões imprevisíveis e desafiadores.
Desenvolvido como trabalho acadêmico na disciplina de Linguagens Orientadas a Objetos, no curso de Ciência da Computação da UNESPAR.
| Tipo | Símbolo | Comportamento |
|---|---|---|
| Clássica | + | Segue as regras originais de Conway |
| Forte | @ | Só morre com menos de 2 vizinhos vivos; revive com mais de 4 |
| Tímida | & | Morre se tiver qualquer vizinho vivo; revive se todos estiverem mortos |
| Matemática | # | Vive se número de vizinhos for ímpar; revive se for par |
| Borda | . | Sempre morta; usada para delimitar o tabuleiro |
Todas as células mortas são representadas por ..
Celula.javaClasse abstrata que define a estrutura e comportamento base de uma célula:
vida (1 = viva, 0 = morta);setVida(int vida): atualiza o estado de vida;toString(): retorna . se a célula estiver morta ou o símbolo correspondente se estiver viva.simbolo(): método abstrato que define o símbolo da célula quando viva.celulaProximaIteracao(int vizinhos): método abstrato que define como a célula evolui com base no número de vizinhos vivos.CelulaClassica;CelulaForte;CelulaTimida;CelulaMatematica;CelulaBorda.Cada uma sobrescreve o método celulaProximaInteracao() com sua lógica específica.
Tabuleiro.javaClasse responsável por gerenciar o estado geral do jogo:
Trabalho1Equipe_6Classe principal responsável por:
Entrada:5 5
@ @ @ @ @
@ @ @ @ @
@ @ @ @ @
@ @ @ @ @
@ @ @ @ @
0 0 1 0 0
1 0 0 0 0
1 0 1 0 0
0 1 0 1 0
0 0 0 0 0
1
Saída:. . . . . . .
. . . @ . . .
. @ . . . . .
. @ . @ . . .
. . @ . @ . .
. . . . . . .
. . . . . . .
Pós Iteração:
. . . . . . .
. . . . . . .
. . . . . . .
. @ . @ . . .
. . @ . . . .
. . . . . . .
. . . . . . .
Cada célula é representada por um caractere:
'@': célula viva;'.': célula morta.Desenvolvido por:
Luna
Maria Rita
Vallentina
Clone o repositório para o seu computador:
git clone https://github.com/MariaCampanaP/Jogo-da-Vida-Java-Primeiro-Bimestre.git