Jogo da Vida
Introdução
O Jogo da Vida
não é um jogo comum, com disputa e vencedores, mas sim um autômato
celular muito conhecido, que foi criado pelo matemático John Conway.
Há um diagrama cujas células podem estar vivas ou mortas e evoluem
segundo as seguintes regras:
- Uma célula viva com menos de dois vizinho morre (solidão).
- Uma célula viva com mais de três vizinho morre (superlotação).
- Uma célula com dois ou três vizinhos sobrevive para a próxima geração.
- Uma célula morta com exatamente três vizinhos renasce.
Implementação
Você deve escrever uma versão multithread do jogo da vida, que não
precisará utilizar mecanismos de sincronização como mutex locks ou
semáforos. O grupo irá decidir como dividir o trabalho do tabuleiro
entre as várias threads.
A saída pode ser uma seqüência de matrizes em texto simples, ou você
pode utilizar bibliotecas como OpenGL ou NCurses. Neste caso, fique
atento para outros possíveis problemas de sincronização.