public MoveCollection Copy()
        {
            var copy = new MoveCollection();

            copy.AddRange(this);
            return(copy);
        }
        public static MoveCollection CreateStack(PlayerType player, int[] stacks)
        {
            var moves = new MoveCollection();

            for (int id = 1; id < stacks.Length; id++)
            {
                if (stacks[id] > 0)
                {
                    moves.Add(Move.CreateStack(player, id, stacks[id]));
                }
            }
            return(moves);
        }