Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int[] FindLine(int cellNum)
- {
- int row, col;
- // Находим ряд и столбец клетки
- row = cellNum / N;
- col = cellNum - N * row;
- int[] line = new int[N];
- // Проверка диагоналей
- bool diag = false;
- // Диагональ 00 - 11
- if (row == col)
- {
- diag = true;
- for (int i = 0; i < N; i++)
- {
- if (_cells[0].State != _cells[N * i + i].State)
- {
- diag = false;
- }
- }
- if (diag)
- {
- for (int i = 0; i < N; i++)
- {
- line[i] = N * i + i;
- }
- return line;
- }
- }
- // Диагональ 10 - 01
- if (row + col == N - 1)
- {
- diag = true;
- for (int i = 0; i < N; i++)
- {
- if (_cells[N-1].State != _cells[N-1+(N-1)*i].State)
- {
- diag = false;
- }
- }
- if (diag)
- {
- for (int i = 0; i < N; i++)
- {
- line[i] = N-1+2*i;
- }
- return line;
- }
- }
- // Проверка горизонтальной линии
- bool hline = true;
- for (int i = 0; i < N; i++)
- {
- if (_cells[N * row].State != _cells[N * row + i].State)
- {
- hline = false;
- }
- }
- if (hline)
- {
- for (int i = 0; i < N; i++)
- {
- line[i] = N * row + i;
- }
- return line;
- }
- // Проверка вертикальной линии
- bool vline = true;
- for (int i = 0; i < N; i++)
- {
- if (_cells[col].State != _cells[col+i*N].State)
- {
- vline = false;
- }
- }
- if (vline)
- {
- for (int i = 0; i < N; i++)
- {
- line[i] = col+i*N;
- }
- return line;
- }
- return null;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement