Extensions.cs 926 B

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