Можете объяснить каждую строчку
private static void linecheck( arr, out bool check, int t, char xo, out int test, int n)
{
check = false;
test = 1;
int k;
for (int i = 0; i < arr.getlength(0); i++)
{
k = 1;
for (int j = 0; j < arr.getlength(1) - 1; j++)
{
if (k < t)
{
if (arr[i, j] == arr[i, j + 1] & & arr[i, j] == xo)
k = k + 1;
else
k = 1;
}
else
check = true;
}
}
if (check == false)
{
for (int j = 0; j < arr.getlength(1); j++)
{
k = 1;
for (int i = 0; i < arr.getlength(0) - 1; i++)
{
if (k < t)
{
if (arr[i, j] == arr[i + 1, j] & & arr[i, j] == xo)
k = k + 1;
else
k = 1;
}
else
check = true;
}
}
}
if (check == false)
{
k = 1;
for (int i = 1; i < arr.getlength(1); i++)
{
int i2 = i;
for (int j = 0; j < i; j++)
{
i2 = i2 - 1;
if (k < t)
{
if (arr[i2 + 1, j] == arr[i2, j + 1] & & arr[i2 + 1, j] == xo)
k = k + 1;
else
k = 1;
}
else
check = true;
}
}
}
if (check == false)
{
k = 1;
for (int i = 1; i < arr.getlength(1); i++)
{
int i2 = i;
for (int j = 0; j < i; j++)
{
i2 = i2 - 1;
if (k < t)
{
if (arr[i2 + 1, j] == arr[i2, j + 1] & & arr[i2 + 1, j] == xo)
k = k + 1;
else
k = 1;
}
else
check = true;
}
if (i == 3)
{
for (int j3 = 0; j3 < arr.getlength(0) - 1; j3++)
{
i2 = arr.getlength(1) - 1;
for (int j = j3; j < i; j++)
{
i2 = i2 - 1;
if (k < t)
{
if (arr[i2 + 1, j] == arr[i2, j + 1] & & arr[i2 + 1, j] == xo)
k = k + 1;
else
k = 1;
}
else
check = true;
}
}
}
}
}
if (check == false)
{
k = 1;
for (int i2 = 0; i2 < arr.getlength(1) - 1; i2++)
{
for (int j2 = 0; j2 < arr.getlength(1) - 2; j2++)
{
int i = i2 - 1;
for (int j = j2; j < 3; j++)
{
if (i < arr.getlength(1) - 2)
i = i + 1;
if (k < t)
{
if (arr[i, j] == arr[i + 1, j + 1] & & arr[i, j] == xo)
k = k + 1;
else
k = 1;
}
else
check = true;
}
}
}
}
int o = 0;
if (check == false)
{
for (int i = 0; i < arr.getlength(0); i++)
{
for (int j = 0; j < arr.getlength(1); j++)
{
if (arr[i, j] == xo)
{
o = o + 1;
}
}
}
if (o == n * n)
{
check = true;
test = 0;
}
}