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;
}
}