public Nodo getMenorQuitar(int notLikeId) { //busco un candidato con pocas flores para quitarle una var nodes = toList(); NodoComparerMenor dc = new NodoComparerMenor(); nodes.Sort(dc); //de mayor a menor List <Nodo> temp = new List <Nodo>(); //1er filtro de candidato temp.Clear(); foreach (Nodo n in nodes) { if (n.consensoAlcanzado && n.flores > 0 && n.id != notLikeId) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } //1er filtro de candidato temp.Clear(); foreach (Nodo n in nodes) { if (n.flores > 0 && n.id != notLikeId && n.nivel > 2) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } //2er filtro de candidato temp.Clear(); foreach (Nodo n in nodes) { if (n.flores > 0 && n.id != notLikeId) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } return(nodes[0]); }
public Nodo getMenorAgregar(int notLikeId) { //busco un candidato con pocas flores para agregarle una List <Nodo> nodes = toList(); NodoComparerMenor dc = new NodoComparerMenor(); nodes.Sort(dc); //de mayor a menor List <Nodo> temp = new List <Nodo>(); //1er filtro de candidato foreach (Nodo n in nodes) { if (!n.consensoAlcanzado && n.id != notLikeId && n.nivel == 5 && n.flores < minSiPc) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } //1er filtro de candidato temp.Clear(); foreach (Nodo n in nodes) { if (!n.consensoAlcanzado && n.id != notLikeId && n.children.Count == 0 && n.flores < minSiPc) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } //2er filtro de candidato temp.Clear(); foreach (Nodo n in nodes) { if (!n.consensoAlcanzado && n.id != notLikeId && n.flores < minSiPc) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } //3er filtro de candidato temp.Clear(); foreach (Nodo n in nodes) { if (n.id != notLikeId) { temp.Add(n); } } if (temp.Count > 0) { return(rndElement(temp)); } return(nodes[0]); }