var map = new Container[MAX_X,MAX_Y];
Random rnd = new Random();
for(var x = 0; x < map.GetLength(0); x++)
for(var y = 0; y < map.GetLength(1); y++)
var container = new Container((rnd.Next(1,100) <= 20),x,y,MAX_XM ,MAX_YM);
for(var y = 0; y < map.GetLength(1); y++)
for(var x = 0; x < map.GetLength(0); x++)
map[x,y].setTouching(ref map);
for(var y = 0; y < map.GetLength(1); y++)
for(var x = 0; x < map.GetLength(0); x++)
map[x,y].ShowTouchingBoomCount();
public bool GoBoom {get; private set;}
public int TouchingBoom {get; private set;}
public int X {get; private set;}
public int Y {get; private set;}
public Container (bool boom, int x, int y, int maxX, int maxY)
public void ShowTouchingBoomCount()
Console.WriteLine(" " +TouchingBoom.ToString());
Console.Write(" " + TouchingBoom.ToString());
Console.WriteLine((GoBoom ? " X" : " O"));
Console.Write((GoBoom ? " X" : " O"));
Console.WriteLine(X.ToString() + " "+ Y.ToString() + " " + GoBoom.ToString() + " " + TouchingBoom.ToString());
public void setTouching(ref Container[,] containers)
if(xm >= 0 && containers[xm, Y].GoBoom)
if(xm >= 0 && ym >= 0 && containers[xm, ym].GoBoom)
if(xm >= 0 && yp < MaxY && containers[xm, yp].GoBoom)
if(xp < MaxX && containers[xp, Y].GoBoom)
if(xp < MaxX && ym >= 0 && containers[xp, ym].GoBoom)
if(xp < MaxX && yp < MaxY && containers[xp, yp].GoBoom)
if(ym >= 0 && containers[X, ym].GoBoom)
if(yp < MaxY && containers[X, yp].GoBoom)