treść zadania w załączniku.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cwiczeniaa;
import java.util.Scanner;
/**
*
* @author Krzysiek
*/
public class Cwiczeniaa {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n;
do{
System.out.println("Podaj liczbe dodatnią nieujemną: ");
n=in.nextInt();
}while(n<=0);
int[][] a=new int[n][n];
//wypełnianie tablicy wartosciami
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)a[i][j]=0;
//tutaj wartosci dla zywych komórek, ale tak że n musi mieć w tym wypadku co najmniej 5
a[1][1]=1;
a[0][1]=1;
a[0][2]=1;
a[0][3]=1;
a[0][4]=1;
a[4][2]=1;
a[3][1]=1;
a[1][2]=1;
a[0][3]=1;
a[3][4]=1;
int ileZywych=0;
for(int u=0; u<5; u++){
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
//teraz sprawdzamy komórki, opracowałem algorytm dla sąsiadujących komórek które znajdują się w tych pozycjach od komórki głównej
for(int k=-1; k<2; k++){
for(int g=-1; g<2; g++){
int x=k+i;
int y=g+j;
//jeżeli liczba wychodzi poza zakres tablicy, to ją zmieniam na sąsiadującą z drugiej strony
if(x<0)x=n-1;
if(y<0)y=n-1;
if(x>(n-1))x=0;
if(y>(n-1))y=0;
if(a[x][y]==1)ileZywych++;
}
}
if(ileZywych==3)a[i][j]=1;
if(a[i][j]==1 && ileZywych!=2 && ileZywych!=3)
a[i][j]=0;
ileZywych=0;
}
//wypisanie całej tablicy komórek, żeby sprawdzić zmiany
}
for(int e=0; e<n; e++){
for(int t=0; t<n; t++)System.out.print(a[e][t]+" ");
System.out.println();
}
System.out.println();
System.out.println();
System.out.println();
}
}
}