Общий поворот клеток, как это реализовать?

Для реализации общего поворота клеток в 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° против часовой стрелки сетка клеток.