Для реализации общего поворота клеток в C# можно воспользоваться следующим подходом:
1. Создать двумерный массив, представляющий сетку клеток. Например, можно использовать массив типа bool, где true будет означать наличие клетки, а false - отсутствие.
bool[,] grid = new bool[width, height];
2. Написать метод, который будет осуществлять поворот клеток на 90° против часовой стрелки. В этом методе будем создавать новый массив и переносить значения из исходного массива в новый, выполняя соответствующую замену координат.
bool[,] RotateGrid(bool[,] originalGrid) { int width = originalGrid.GetLength(0); int height = originalGrid.GetLength(1); bool[,] rotatedGrid = new bool[height, width]; // Перебираем исходный массив и переносим значения в новый массив for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { rotatedGrid[i, j] = originalGrid[j, height - i - 1]; } } return rotatedGrid; }
3. Вызвать метод RotateGrid(), передав в него исходный массив клеток, и присвоить результат повернутой сетки клеток другой переменной.
bool[,] originalGrid = new bool[,] { { true, false, true }, { false, true, false }, { true, false, true } }; bool[,] rotatedGrid = RotateGrid(originalGrid);
Теперь в переменной rotatedGrid будет содержаться повернутая на 90° против часовой стрелки сетка клеток.