using FourInARow; namespace MinMaxAB; public static class Extensions { public static T ChooseRandom(this T[] source) => source[Random.Shared.Next(0, source.Length)]; public static Player[][] Fill(int cols, int rows, Player value) { Player[][] array = new Player[cols][]; for (int i = 0; i < cols; i++) { var arr = new Player[rows]; for (int j = 0; j < rows; j++) { arr[j] = value; } array[i] = arr; } return array; } public static Player[][] CopyArrayBuiltIn(this Player[][] source) { var len = source.Length; var dest = new Player[len][]; for (var x = 0; x < len; x++) { var inner = source[x]; var ilen = inner.Length; var newer = new Player[ilen]; Array.Copy(inner, newer, ilen); dest[x] = newer; } return dest; } }