Beispiel #1
0
        public void ButorKihozatal(int ID, Raktar raktar)
        {
            ButorAlap elem = raktar.lista.IDthElem(ID);

            int[] UtbanVanIDk = new int[raktar.ButorDarab - 1];
            Utbanvan(ref UtbanVanIDk, elem, raktar);
            LancoltLista kihozottButorokLista = new LancoltLista();
            int          j = 0;

            while (j < raktar.ButorDarab && UtbanVanIDk[j] != 0)
            {
                kihozottButorokLista.VegereBeszuras(raktar.lista.IDthElem(UtbanVanIDk[j]));
                raktar.ElemKivetel(UtbanVanIDk[j++]);
            }
            raktar.ElemKivetel(ID);
            raktar.lista.KitorolListabol(ID, raktar.lista);
            raktar.ButorDarab--;
            int kihozottDb = kihozottButorokLista.DarabElem(kihozottButorokLista);

            if (kihozottDb != 0)
            {
                bool[] OPT = new bool[kihozottDb];
                bool[] E   = new bool[kihozottDb];
                bool[,] R = new bool[kihozottDb, 2];
                for (int i = 0; i < kihozottDb; i++)
                {
                    R[i, 0] = true;
                    R[i, 1] = false;
                }
                bool van = false;
                OptimBTS.OPTIMBTS(0, ref E, R, ref van, this, ref OPT, kihozottButorokLista);
                for (int i = 0; i < kihozottDb; i++)
                {
                    if (OPT[i])
                    {
                        getHely(kihozottButorokLista.NthElem(i), true); // visszarakas a raktarba
                        OnUjHely(kihozottButorokLista.NthElem(i).ID, kihozottButorokLista.NthElem(i).BalFelsoKoordinata);
                    }
                    else
                    {
                        throw new NincsTobbHelyButornakTeljesRendezesElottException()
                              {
                                  HibaUzenet = "[ERR]Egy butornak nem sikerült helyet találni",
                                  elem       = kihozottButorokLista.NthElem(i)
                              };
                    }
                }
            }
        }
Beispiel #2
0
        static bool Fk(int szint, bool r, Raktar raktar, bool[] E, LancoltLista lista)
        {
            if (r == false)
            {
                return(true);
            }
            bool seged;

            seged = raktar.getHely(lista.NthElem(szint), false);
            return(seged);
        }
Beispiel #3
0
        public void OsszesButorElhelyezeseARaktarban(bool UjraRendezes)
        {
            bool van             = false;
            int  butorDarabSeged = ButorDarab;

            int[,] raktarButorokkalseged = raktarButorokkal;
            bool[,] R = new bool[ButorDarab, 2];
            for (int i = 0; i < ButorDarab; i++)
            {
                R[i, 0] = true;
                R[i, 1] = false;
            }
            bool[] E = new bool[ButorDarab];
            BTSs.BTS(0, ref E, R, ref van, this);
            if (UjraRendezes)
            {
                Console.WriteLine("\n\nBefer-e(true/false) teljes ujrarendezes utan + annak a butornak az adatai");
                int          i = 0;
                LancoltLista masikRaktarbaKuldesButorok = new LancoltLista();
                foreach (bool item in E)
                {
                    Console.Write(item + " ");
                    Console.WriteLine(lista.NthElem(i));
                    if (!item)
                    {
                        masikRaktarbaKuldesButorok.VegereBeszuras(lista.NthElem(i));
                    }
                    i++;
                }
                if (masikRaktarbaKuldesButorok.DarabElem(masikRaktarbaKuldesButorok) != 0)
                {
                    for (int j = 0; j < masikRaktarbaKuldesButorok.DarabElem(masikRaktarbaKuldesButorok); j++)
                    {
                        lista.KitorolListabol(masikRaktarbaKuldesButorok.NthElem(j).ID, lista);
                    }
                    throw new NincsTobbHelyButornakTeljesRendezesUtanException()
                          {
                              HibaUzenet = "[ERR]Butor(ok)nak nincs hely teljes ujrarendezés után",
                              elemek     = masikRaktarbaKuldesButorok
                          };
                }
            }
            else
            {
                Console.WriteLine("\n\nBefer-e(true/false) + annak a butornak az adatai");
                for (int i = 0; i < ButorDarab; i++)
                {
                    Console.Write(E[i] + " ");
                    Console.WriteLine(lista.NthElem(i));
                }
            }
        }