TRabalho
Avaliação PE
Jogo da vida
Entrega: 30/05/2013
Visão geral:
O jogo da vida, inventado por John Conway em 1970, é um exemplo de jogo “sem jogador” conhecido como automato celular. O jogo consiste de um mundo bidimensional, dividido em células, estendendo-se infinitamente em todas as direções. Cada célula está “viva” ou “morta” em uma “geração” dada. O jogo consiste de um conjunto de regras que descrevem como as células evoluem de geração para geração. Essas regras calculam o estado de um célula, na geração seguinte, em função dos estados atuais das células vizinhas na geração corrente. Em um mundo 2D, uma célula tem 8 vizinhos, compreendendo todas as direções: vertical, horizontal e diagonal. O conjunto de regras proposto por Conway está resumido abaixo:
1. Uma célula viva com menos de dois vizinhos vivos deve morrer;
2. Uma célula viva com mais de três vizinhos também deve morrer;
3. Uma célula viva com exatamente dois ou três vizinhos deve viver;
4. Uma célula morta com exatamente três vizinhos vivos deve viver.
Nesta avaliação, você estará programando o jogo da vida de Conway com uma pequena restrição: o mundo é finito. Os vizinhos das células de borda do mundo estão mortos, por estarem além dos limites do mundo. Você pode ler mais sobre o jogo em:
•
http://en.wikipedia.org/wiki/Conway's_Game_of_Life
•
http://pt.wikipedia.org/wiki/Jogo_da_vida
Exemplo de transição de configuração entre gerações:
Legenda: | * | = vivo e | | = morto.
PARTE A: Programando a evolução
Nesta parte você estará focado na programação das regras que evoluem o mundo com o passar das gerações. Para ajudá-lo, estão disponibilizadas várias funções que você deve usar para acessar e modificar o estado corrente e o próximo estado do mundo. Estas funções estão descritas no arquivo cabeçalho lifegame.h, e programadas no arquivo lifegame.c. Também está disponibilizado o esqueleto das funções, com descrição daquilo que você deve fazer nesta parte A no