1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using Connect4;
- namespace MinMaxAB;
- public static class Extensions
- {
- /// <summary>
- /// Заполнить двумерный массив заданным значением
- /// </summary>
- /// <param name="cols">Количество столбцов в массиве</param>
- /// <param name="rows">Количество строк в массиве</param>
- /// <param name="value">Значение, которое установить во все ячейки</param>
- /// <returns>Новый двумерный массив, заполненный заданным значением</returns>
- 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;
- }
- /// <summary>
- /// Скопировать двоичный массив
- /// </summary>
- /// <param name="source">Исходный массив</param>
- /// <returns>Новый двумерный массив с такими же значениями</returns>
- 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;
- }
- }
|