示例#1
0
        public void PostaviNaPoslednjeMesto(List <Sestra> sestre, int stariIndex)
        {
            int    noviIndeks = sestre.Count - 1;
            Sestra tmp        = sestre[noviIndeks];

            sestre[noviIndeks] = sestre[stariIndex];
            sestre[stariIndex] = tmp;
        }
示例#2
0
        public void shuffleSestre(List <Sestra> sestre)
        {
            int br = sestre.Count;

            while (br > 1)
            {
                br--;
                int    random = rng.Next(br + 1);
                Sestra tmp    = sestre[random];
                sestre[random] = sestre[br];
                sestre[br]     = tmp;
            }
        }
        static void Main(string[] args)
        {
            Sestra nurse1 = new Sestra("Jelena", "Vasic");
            Sestra nurse2 = new Sestra("Marija", "Majkic");
            Sestra nurse3 = new Sestra("Dragana", "Tomcic");
            Sestra nurse4 = new Sestra("Snezana", "Subasic");

            GlobalniRaspored globalniRaspored = new GlobalniRaspored();


            List <Sestra> sestre = new List <Sestra>();

            sestre.Add(nurse1);
            sestre.Add(nurse2);
            sestre.Add(nurse3);
            sestre.Add(nurse4);
            Functions fun = new Functions();

            do
            {
                fun.pocetak(sestre, globalniRaspored);
                for (int k = 0; k < 2; k++)
                {
                    for (int i = 0; i < 7; i++)
                    {     //prva petlja je za dane {PON,UT...}
                        for (int j = 0; j < 3; j++)
                        { //druga je za smene {PREPO,POP,UVE,OFF}
                            if (k == 0)
                            {
                                fun.shuffleSestre(sestre);

                                if (globalniRaspored.gl[j, i] == null)
                                {
                                    fun.DodajPrvuSlobodnuSestru(sestre, globalniRaspored, j, i);
                                }
                            }
                            else if (k > 0)
                            {
                                if (globalniRaspored.gl[j, i] == null)
                                {
                                    fun.TraziSlobodnu(sestre, globalniRaspored, j, i);
                                }
                            }
                        }
                    }
                }

                for (int i = 0; i < sestre.Count; i++)
                {
                    //proveri raspored svake sestre pojedinacno
                    fun.proveriRasporedSestre(sestre[i].raspored);
                }
            } while (!fun.krajnjaProvera(sestre, globalniRaspored));



            for (int i = 0; i < sestre.Count; i++)
            {
                Console.WriteLine();
                sestre[i].printaj();
            }

            Console.WriteLine("************************Globalni raspored***********************");
            globalniRaspored.printaj();
            Console.ReadKey();
        }