public static void Main()
var matrix = new int[n, n];
var matrix2 = new int[n, n];
Random rnd = new Random();
var r = rnd.NextDouble();
for (var y = 0; y < n; y++)
for (var x = 0; x < n; x++)
if(rnd.NextDouble() < 0.4)
else if(rnd.NextDouble() < 0.3)
for (var y = 0; y < n; y++)
for (var x = 0; x < n; x++)
Console.Write("{0}", matrix[x,y].ToString());
Console.Write("{0},", matrix[x,y].ToString());
LandDeveloper(n, matrix, matrix2);
public static void LandDeveloper(int n, int[,] matrix, int[,] matrix2)
for (var y = 0; y < n - 1; y++)
for (var x = 0; x < n - 1; x++)
for(var a = -1; a < 2; a++)
for(var b = -1; b < 2; b++)
if(matrix[x, y] != 0 && matrix[x+a, y+b] == 0)
else if(matrix[x, y] == 1 && matrix[x+a, y+b] == 0)
else if(matrix[x, y] == 2 && matrix[x+a, y+b] == 1)
Random rnd2 = new Random();
var r2 = rnd2.NextDouble();
if(count0 > 0 && r2 < 0.2)
matrix2[x, y] = matrix[x, y];
for(var y = 0; y < n; y++)
for (var x = 0; x < n; x++)
Console.Write("{0}", matrix2[x,y].ToString());
Console.Write("{0},", matrix2[x,y].ToString());