Exemple #1
0
 public void Wyjdz(Samochod samochod)
 {
     if (samochod == lewyPojazd)
     {
         lewyPojazd = null;
     }
     else if (samochod == prawyPojazd)
     {
         prawyPojazd = null;
     }
     else
     {
         throw new Exception("Nieprawidłowy obiekt na wejściu");
     }
 }
        public void Wyjdz(Samochod samochod)
        {
            PrzejscieDlaPieszych.Wyjedz(samochod);

            if (samochod == lewyPojazd)
            {
                lewyPojazd = null;
            }
            else if (samochod == prawyPojazd)
            {
                prawyPojazd = null;
            }
            else
            {
                throw new Exception("Niepoprawny obiekt na wejściu");
            }
        }
 public void Wyjdz(Samochod samochod)
 {
     if (samochod == pojazd[0])
     {
         pojazd[0]             = null;
         przecinaneKwadraty[0] = null;
     }
     else if (samochod == pojazd[1])
     {
         pojazd[1]             = null;
         przecinaneKwadraty[1] = null;
     }
     else
     {
         throw new Exception("Nieprawidłowy obiekt na wejściu");
     }
 }
 public void Wejdz(Samochod samochod)
 {
     if (pojazd[0] == null)
     {
         pojazd[0]             = samochod;
         przecinaneKwadraty[0] = WyznaczPrzecinanieDrogi(samochod);
     }
     else if (pojazd[1] == null)
     {
         pojazd[1]             = samochod;
         przecinaneKwadraty[1] = WyznaczPrzecinanieDrogi(samochod);
     }
     else
     {
         throw new Exception("Nieprawidłowy obiekt na wejściu");
     }
 }
 public bool CzyMogeWejsc(Samochod samochod)
 {
     if (PrzejscieDlaPieszych.CzyMogeWejsc(samochod))
     {
         if (Punkt <double> .ZwrocRelacje(samochod.ObecnaPozycja.Pozycja, pozycja) == Relacja.Pionowe)
         {
             if (samochod.ObecnaPozycja.Pozycja.Y > pozycja.Y)
             {
                 return(lewyPojazd == null);
             }
             else
             {
                 return(prawyPojazd == null);
             }
         }
         else if (Punkt <double> .ZwrocRelacje(samochod.ObecnaPozycja.Pozycja, pozycja) == Relacja.Poziome)
         {
             if (samochod.ObecnaPozycja.Pozycja.X > pozycja.X)
             {
                 return(prawyPojazd == null);
             }
             else
             {
                 return(lewyPojazd == null);
             }
         }
         else
         {
             throw new Exception("Nieprawidłowy obiekt na wejściu");
         }
     }
     else
     {
         return(false);
     }
 }
        private bool[] WyznaczPrzecinanieDrogi(Samochod samochod)
        {
            bool[] tab = new bool[4];

            int wejscie = -1;

            if (samochod.ObecnaPozycja.Pozycja.X < pozycja.X)//lewo
            {
                wejscie = 2;
            }
            else if (samochod.ObecnaPozycja.Pozycja.X > pozycja.X)//prawo
            {
                wejscie = 1;
            }
            else if (samochod.ObecnaPozycja.Pozycja.Y < pozycja.Y)//prawo
            {
                wejscie = 0;
            }
            else if (samochod.ObecnaPozycja.Pozycja.Y > pozycja.Y)//prawo
            {
                wejscie = 3;
            }
            else
            {
                return(tab);
            }

            tab[wejscie] = true;

            int wyjscie = -1;

            if (samochod.Cel.Pozycja.X < pozycja.X)//lewo
            {
                wyjscie = 0;
            }
            else if (samochod.Cel.Pozycja.X > pozycja.X)//prawo
            {
                wyjscie = 3;
            }
            else if (samochod.Cel.Pozycja.Y < pozycja.Y)//prawo
            {
                wyjscie = 1;
            }
            else if (samochod.Cel.Pozycja.Y > pozycja.Y)//prawo
            {
                wyjscie = 2;
            }

            tab[wyjscie] = true;

            if (wejscie == 3 && wyjscie == 0)
            {
                tab[1] = true;
            }
            else if (wejscie == 2 && wyjscie == 1)
            {
                tab[3] = true;
            }
            else if (wejscie == 0 && wyjscie == 3)
            {
                tab[2] = true;
            }
            else if (wejscie == 1 && wyjscie == 2)
            {
                tab[0] = true;
            }

            return(tab);
        }