예제 #1
0
        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());
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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()));
        }