private void llenarArbol(ArbolGeneral <DatosJugadas> nodoCarta, List <int> cartasPropias, List <int> cartasOponente)
        {
            List <int> cartasPropiasSinJugada = new List <int>(cartasPropias);

            cartasPropiasSinJugada.Remove(nodoCarta.getDatoRaiz().Carta);

            int limiteActualizado = nodoCarta.getDatoRaiz().LimiteActual - nodoCarta.getDatoRaiz().Carta;

            if (limiteActualizado < 0)
            {
                nodoCarta.getDatoRaiz().Ganadas = 0;
            }
            else
            {
                foreach (int cartaOponente in cartasOponente)
                {
                    DatosJugadas cartaJugadorOponente             = new DatosJugadas(cartaOponente, limiteActualizado, 0, !nodoCarta.getDatoRaiz().EsAi);
                    ArbolGeneral <DatosJugadas> nodoCartaOponente = new ArbolGeneral <DatosJugadas>(cartaJugadorOponente);
                    llenarArbol(nodoCartaOponente, cartasOponente, cartasPropiasSinJugada);
                    nodoCarta.agregarHijo(nodoCartaOponente);
                }
            }
        }
        public override void incializar(List <int> cartasPropias, List <int> cartasOponentes, int limite)
        {
            //creo 2 listas y las agrego
            DatosJugadas inicial = new DatosJugadas(-1, limite, 0, true);

            arbol = new ArbolGeneral <DatosJugadas>(inicial);

            /*List<int> cartPro=new List<int>();
             * List<int> cartOpo=new List<int>();
             * cartOpo.Add(1);
             * cartOpo.Add(3);
             * cartPro.Add(2);
             * cartPro.Add(4);*/

            //llenarArbol(this.arbol,cartasPropias,cartasOponentes);
            //this.arbol.porNiveles();

            llenarArbol(this.arbol, cartasPropias, cartasOponentes);

            //Invoco el método porNiveles() de la clase ArbolGeneral
            //this.arbol.porNiveles();

            Console.WriteLine("cantidad de cartas disponibles: " + this.arbol.getHijos().Count);
        }