示例#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;
     }
 }
示例#2
0
        private List <NCarta> AgregarNodo(List <int> listaCartas, bool flag)
        {
            List <NCarta> listaNodos = new List <NCarta>();

            foreach (int carta in listaCartas)
            {
                NCarta nodoCarta = new NCarta {
                    carta = carta, flag = flag
                };
                listaNodos.Add(nodoCarta);
            }
            return(listaNodos);
        }