using Connect4; namespace MinMaxAB; public static class Extensions { /// /// Заполнить двумерный массив заданным значением /// /// Количество столбцов в массиве /// Количество строк в массиве /// Значение, которое установить во все ячейки /// Новый двумерный массив, заполненный заданным значением public static Player[][] Fill(int cols, int rows, Player value) { Player[][] array = new Player[cols][]; var arr = new Player[rows]; for (int j = 0; j < rows; j++) { arr[j] = value; } array[0] = arr; for (int i = 1; i < cols; i++) { array[i] = new Player[rows]; arr.CopyTo(array[i].AsSpan()); } return array; } /// /// Скопировать двоичный массив /// /// Исходный массив /// Новый двумерный массив с такими же значениями public static Player[][] DeepCopy(this Player[][] source) { var len = source.Length; var dest = new Player[len][]; for (var i = 0; i < len; i++) { var inner = source[i]; var ilen = inner.Length; var newer = new Player[ilen]; Array.Copy(inner, newer, ilen); dest[i] = newer; } return dest; } }