Extensions.cs 978 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using FourInARow;
  2. namespace MinMaxAB;
  3. public static class Extensions
  4. {
  5. public static T ChooseRandom<T>(this T[] source) => source[Random.Shared.Next(0, source.Length)];
  6. public static Player[][] Fill(int cols, int rows, Player value)
  7. {
  8. Player[][] array = new Player[cols][];
  9. for (int i = 0; i < cols; i++)
  10. {
  11. var arr = new Player[rows];
  12. for (int j = 0; j < rows; j++)
  13. {
  14. arr[j] = value;
  15. }
  16. array[i] = arr;
  17. }
  18. return array;
  19. }
  20. public static Player[][] CopyArrayBuiltIn(this Player[][] source)
  21. {
  22. var len = source.Length;
  23. var dest = new Player[len][];
  24. for (var x = 0; x < len; x++)
  25. {
  26. var inner = source[x];
  27. var ilen = inner.Length;
  28. var newer = new Player[ilen];
  29. Array.Copy(inner, newer, ilen);
  30. dest[x] = newer;
  31. }
  32. return dest;
  33. }
  34. }