/** 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; } }
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); }