using System namespace GOVNO class Lab2 private int matrix private int

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
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;
}
}
}