public void StateAdapt(Autonomvz a, Road r)
            {
                switch (r.TypeOfRoad)
                {
                case "C": a.Svetla = false; a.AktualniRychlost = a.CestovniRychlost; break;

                case "T": a.Svetla = true; a.AktualniRychlost = 0.8m * a.CestovniRychlost; break;

                case "M": a.Svetla = false; a.AktualniRychlost = 0.5m * a.CestovniRychlost; break;
                }
            }
        static void Main(string[] args)
        {
            Meteo     met   = new Meteo();
            string    cesta = "CCCCCCMMMCCCCCMMMCCCCCCTTCCCCCMMMCCCCCCTTCCCCCCCCCCTTCCCCCCC";
            Autonomvz auto  = new Autonomvz(100, cesta);
            vypsat    vyp   = new vypsat();

            vyp.Sub(auto);
            RC rc = new RC();

            rc.Sub(auto);
            auto.Drive();
        }
 public void Vypsat(Autonomvz a, Road r)
 {
     Console.WriteLine(r.TypeOfRoad + " " + a.ID);
 }
 public void Sub(Autonomvz a)
 {
     a.change += Vypsat;
 }
 public void Sub(Autonomvz a)
 {
     a.change += StateAdapt;
 }