using System;
namespace GOVNO
{
class Lab2
{
private int[,] matrix;
private int N = 5;
private int M = 5;
public Lab2()
{
matrix = new int[N, M];
RandomFilling();
}
private void RandomFilling()
{
Random rnd = new Random();
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
matrix[i, j] = rnd.Next(0, 2);
}
public void DelteOpaque()
{
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
if (matrix[i, j] == 1)
if (ChechDeletionRight(i,j))
matrix[i, j] = 0;
}
private bool ChechDeletionRight(int currentI, int currentJ)
{
bool topToDown = false;
bool downToTop = false;
bool leftToRight = false;
bool rightToLeft = false;
for (int i = 0; i < currentJ; i++)
if (matrix[currentI, i] != 1)
leftToRight = true;
else
{
leftToRight = false;
break;
}
for (int i = M - 1; i > currentJ; i--)
if (matrix[currentI, i] != 1)
rightToLeft = true;
else
{
rightToLeft = false;
break;
}
for (int i = 0; i < currentI; i++ )
if(matrix[i, currentJ] != 1)
topToDown = true;
else
{
topToDown = false;
break;
}
for (int i = N - 1; i > currentI; i--)
if (matrix[i, currentJ] != 1)
downToTop = true;
else
{
downToTop = false;
break;
}
if (leftToRight || rightToLeft || downToTop || topToDown)
return true;
else
return false;
}
public string GetMatrix()
{
string print = "";
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
print += matrix[i, j] + " ";
print += Environment.NewLine;
}
return print;
}
}
}