private static List <Par> UrediParove(List <Par> listaParova) { int brUtakmica = BrKombinacijaUtakmica(8) * 2; Par[] niz = new Par[brUtakmica]; for (int k = 0; k < niz.Length; k++) { niz[k] = new Par(0, 0); } for (int i = 0; i < listaParova.Count; i++) { for (int j = 0; j < niz.Length; j++) { if (niz[j].DomacinID != listaParova[i].DomacinID && niz[j].GostID != listaParova[i].GostID && niz[j].DomacinID != listaParova[i].GostID && niz[j].GostID != listaParova[i].DomacinID && MozeLiUKolo(j, niz, listaParova[i]) && MozeLiUopste(listaParova[i], niz) && niz[j].DomacinID == 0 && niz[j].GostID == 0) { niz[j] = new Par(listaParova[i].DomacinID, listaParova[i].GostID); break; } } } return(niz.ToList()); }
private static bool MozeLiUopste(Par par, Par[] niz) { bool exists = false; for (int i = 0; i < niz.Length; i++) { if (niz[i].DomacinID == par.DomacinID && niz[i].GostID == par.GostID) { exists = true; } } return(exists ? false : true); }
private static bool MozeLiUKolo(int j, Par[] niz, Par par) { int kolo = (int)((double)j / 4); bool exists = false; for (int i = kolo * 4; i < kolo * 4 + 4; i++) { if (niz[i].DomacinID == par.DomacinID || niz[i].GostID == par.GostID || niz[i].GostID == par.DomacinID || niz[i].DomacinID == par.GostID) { exists = true; } } return(exists ? false : true); }
private static List <Par> GetParove(int[] nizID) { int brUtakmica = BrKombinacijaUtakmica(nizID.Length) * 2; int[] randNiz = RandomNiz(8, 8); int[] mixNiz = new int[8]; for (int i = 0; i < nizID.Length; i++) { mixNiz[i] = nizID[randNiz[i]]; } nizID = mixNiz; Par[] parovi = new Par[brUtakmica]; int brParova = 0; while (brParova != brUtakmica) { bool parExists = false; for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { parExists = false; if (i == j) { continue; } for (int k = 0; k < brParova; k++) { if (parovi[k].DomacinID == nizID[i] && parovi[k].GostID == nizID[j]) { parExists = true; } } if (!parExists) { parovi[brParova++] = (new Par(nizID[i], nizID[j])); } } } } return(UrediParove(parovi.ToList())); }