Ejemplo n.º 1
0
 /** Metodo  que arma el arbol de jugadas */
 private void ArmoArbol(ArbolGeneral <NCarta> raiz, List <NCarta> propias, List <NCarta> oponente, int limite)
 {
     foreach (var elem in oponente)
     {
         NCarta dato = new NCarta {
             carta = elem.carta, flag = elem.flag
         };
         ArbolGeneral <NCarta> nodo = new ArbolGeneral <NCarta>(dato); //creo un nuevo nodo con un dato dentro
         raiz.agregarHijo(nodo);                                       //agrego nodo como raíz del arbol
         if (limite - dato.carta < 0)                                  //Si el límite menos el valor de la carta jugada es menor a 0
         {
             if (!dato.flag)                                           //
             {
                 dato.victorias++;                                     //
             }
         }
         else
         {
             List <NCarta> copia = new List <NCarta>();
             copia.AddRange(oponente);
             copia.Remove(elem);
             ArmoArbol(nodo, copia, propias, limite - elem.carta);
         }
         raiz.getDatoRaiz().victorias += dato.victorias;
     }
 }
Ejemplo n.º 2
0
        public override int descartarUnaCarta()
        {
            int max = 0;
            ArbolGeneral <NCarta> ArbolAux = null;

            foreach (ArbolGeneral <NCarta> naipe in Victorias.getHijos())
            {
                if (naipe.getDatoRaiz().getCarta() > max)
                {
                    max      = naipe.getDatoRaiz().getVictoria();
                    ArbolAux = naipe;
                }
            }
            Victorias = ArbolAux;
            return(Victorias.getDatoRaiz().getCarta());
        }