Jogo da vida ajuda

Tou com um problema e gostava qe alguem me pudesse ajudar:s
tenho qe fazer um programa e nao sei como… o problema e este:

"O Jogo da Vida (Game of Life ou Life) é um autómato celular proposto em 1970 pelo matemático britânico John Horton Connway. Na realidade, trata-se de uma simulação e não de um jogo com jogadores. Desenvolve-se numa grelha infinita, na qual cada célula pode estar ocupada por um organismo ou não. Células ocupadas dizem-se que estão vivas e as não ocupadas dizem-se mortas. Em cada geração as células que estão vivas mudam o seu estado em função do número de células vizinhas que estão vivas de acordo com as seguintes regras:

* Os vizinhos de uma célula são as 8 células que a tocam na horizontal, vertical ou diagonal.
* Se uma célula estiver viva e o número de células vizinhas vivas for 0 ou 1, então na geração seguinte a célula morre de solidão.
* Se uma célula está viva e tem 4 ou mais células vizinhas também vivas, então na geração seguinte a célula morre de sobre-povoamento.
* Uma célula viva com 2 ou 3 células vizinhas vivas, continua viva na geração seguinte.
* Se uma célula morta tiver exactamente 3 células vizinhas vivas, muda para o estado de célula viva na geração seguinte.
* Todos os nascimentos e mortes de células têm lugar em simultâneo, isto é as alterações têm por base o estado actual e nunca o estado futuro.

Neste problema vamos considerar que a grelha é finita e que as células que a envolvem estão sempre mortas.
Input

A primeira linha contém três inteiros positivos: o número de linhas L e de colunas C que determinam a dimensão da grelha do jogo e o número de iterações I que devrá realizar.

Seguem-se L linhas de caracteres a representar o estado actual do jogo. As células mortas estão representadas por ‘.’ e as vivas por ‘O’.
Output

Deve imprimir o estado do jogo ao fim de $I$ iterações, isto é, imprimir a matriz que representa a grelha do jogo com as células mortas marcadas com ‘.’ e as células vivas com ‘O’.

Exemplo de input/output
Input Output

5 5 5


.OOO.


…O…
…O…
…O…

“”

obrigado a quem puder ajudar…

E quais são as dúvidas? Ou esperas que alguém faça o trabalho por ti?

nao sei como se faz:|

Então pra começar, deves ler o problema e pensar o que queres fazer.
Pensar não em termos de programação mas simplesmente em linguagem corrente, como se fosses resolver o problema à mão, usando papel e caneta.
Aí fica muito mais fácil de perceber como deves fazer programando.

primeiro deve se criar uma maneira “random” que faça com que as celulas fiquem no estado 0 ou 1
as celulas morrem quando o numero qe as envolvem e <2 e >3 assim como tornam se vivas com a proximidade de 3 celulas vivas…
e preciso criar um tabuleiro finito
a parte das entradas nao percebo

[quote=mhpa]primeiro deve se criar uma maneira “random” que faça com que as celulas fiquem no estado 0 ou 1
(…)
a parte das entradas nao percebo
[/quote]

Não é preciso criar nada random. A entrada é exactamente esta informação de que as células estão no estado 0 ou 1.

Significa que o tabuleiro vai ter 5x5 e que deve terminar após 5 iterações. (Iteração é uma palavra que leva logo a pensar que devemos precisar de um ciclo - for/while)

[quote=mhpa]


.OOO.

…[/quote]

Isto é o tabuleiro inicial. O tal random que não é preciso. As celulas . estão mortas, as O estão vivas.

Isto é como o tabuleiro deve estar após as 5 iterações pedidas para este caso.

deduzo qe para começar tenha qe ser algo assim

class jogo
{
int MAX = 5;
int [] [] matriz = new int [MAX] [MAX]

certo? para definir a matriz…

a parte das iterações nao sei como se faça