Beispiel #1
0
        /*          Start           Trasa           Tunel           Most            Stop
         * Start                    StartTrasa
         * Trasa                                    TrasaTunel                      TrasaStop
         * Tunel                    TunelTrasa                      TunelMost
         * Most                     MostTrasa       MostTunel
         * Stop
         */
        public AktualniStavAuta AktualniStav(AktualniStavAuta minulyStav)
        {
            if (Ujeto >= delkaTrasy)
            {
                return(AktualniStavAuta.Stop);
            }

            if (minulyStav == AktualniStavAuta.Start && Ujeto < delkaTrasy && NaTrase())
            {
                return(AktualniStavAuta.Trasa);
            }

            if (VTunelu())
            {
                return(AktualniStavAuta.Tunel);
            }

            if (NaMoste())
            {
                return(AktualniStavAuta.Most);
            }

            if (Ujeto < delkaTrasy && NaTrase())
            {
                return(AktualniStavAuta.Trasa);
            }

            return(minulyStav);
        }
Beispiel #2
0
 public Auto(double rychlost, double trasa)
 {
     omezeni          = new List <Omezeni>();
     id               = Guid.NewGuid();
     Ujeto            = 0.0;
     svetla           = false;
     this.delkaTrasy  = trasa * 1000; // na metry
     beznaRychlost    = rychlost;
     aktualniRychlost = 0.0;
     stav             = minulyStav = AktualniStavAuta.Start;
 }
Beispiel #3
0
        public void AktualniStav()
        {
            Auto a = new Auto(60, 120);

            a.PridejOmezeni(new Omezeni(TypOmezeni.Most, 100, 200));
            a.PridejOmezeni(new Omezeni(TypOmezeni.Tunel, 300, 400));
            a.Ujeto = 15.0;

            AktualniStavAuta b = a.AktualniStav(AktualniStavAuta.Start);

            Assert.True(b == AktualniStavAuta.Trasa);
            AktualniZmenaAuta za = a.NajdiAktualniZmenu(AktualniStavAuta.Start);

            Assert.True(za == AktualniZmenaAuta.StartTrasa);

            a.Ujeto = 150;
            Assert.True(a.NaMoste());

            b = a.AktualniStav(AktualniStavAuta.Trasa);
            Assert.True(b == AktualniStavAuta.Most);
            za = a.NajdiAktualniZmenu(AktualniStavAuta.Trasa);
            Assert.True(za == AktualniZmenaAuta.TrasaMost);

            a.Ujeto = 210.0;
            Assert.True(a.NaTrase());

            b = a.AktualniStav(AktualniStavAuta.Most);
            Assert.True(b == AktualniStavAuta.Trasa);
            za = a.NajdiAktualniZmenu(AktualniStavAuta.Most);
            Assert.True(za == AktualniZmenaAuta.MostTrasa);

            a.Ujeto = 310.0;
            Assert.True(a.VTunelu());

            b = a.AktualniStav(AktualniStavAuta.Trasa);
            Assert.True(b == AktualniStavAuta.Tunel);
            za = a.NajdiAktualniZmenu(AktualniStavAuta.Trasa);
            Assert.True(za == AktualniZmenaAuta.TrasaTunel);

            a.Ujeto = 410.0;
            Assert.False(a.VTunelu());

            b = a.AktualniStav(AktualniStavAuta.Tunel);
            Assert.True(b == AktualniStavAuta.Trasa);
            za = a.NajdiAktualniZmenu(AktualniStavAuta.Tunel);
            Assert.True(za == AktualniZmenaAuta.TunelTrasa);

            a.Ujeto = 120010.0;
            Assert.False(a.NaTrase());

            b = a.AktualniStav(AktualniStavAuta.Trasa);
            Assert.True(b == AktualniStavAuta.Stop);
        }
Beispiel #4
0
        public AktualniZmenaAuta NajdiAktualniZmenu(AktualniStavAuta minulyStav)
        {
            AktualniStavAuta  a;
            AktualniZmenaAuta zmenaNaTrase = AktualniZmenaAuta.BezeZmeny;

            if ((a = AktualniStav(minulyStav)) != minulyStav)
            {
                this.stav = a;
                if (minulyStav == AktualniStavAuta.Start)
                {
                    zmenaNaTrase = AktualniZmenaAuta.StartTrasa;
                }

                if (minulyStav == AktualniStavAuta.Trasa)
                {
                    if (a == AktualniStavAuta.Stop)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TrasaStop;
                    }
                    if (a == AktualniStavAuta.Most)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TrasaMost;
                    }
                    if (a == AktualniStavAuta.Tunel)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TrasaTunel;
                    }
                }

                if (minulyStav == AktualniStavAuta.Most)
                {
                    if (a == AktualniStavAuta.Stop)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TrasaStop;
                    }
                    if (a == AktualniStavAuta.Trasa)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.MostTrasa;
                    }
                    if (a == AktualniStavAuta.Tunel)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.MostTunel;
                    }
                }

                if (minulyStav == AktualniStavAuta.Tunel)
                {
                    if (a == AktualniStavAuta.Stop)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TrasaStop;
                    }
                    if (a == AktualniStavAuta.Trasa)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TunelTrasa;
                    }
                    if (a == AktualniStavAuta.Most)
                    {
                        zmenaNaTrase = AktualniZmenaAuta.TunelMost;
                    }
                }

                if (a == AktualniStavAuta.Stop)
                {
                    zmenaNaTrase = AktualniZmenaAuta.KonecRegistrace;
                    Console.WriteLine($"Auto ID:{ this.id.ToString().Substring(0, 3)} je v cíli.");
                }
                Debug.WriteLine(this);
            }
            this.minulyStav = a;

            return(zmenaNaTrase);
        }