Пример #1
0
        static void Main()
        {
            ITaxameter meter = null; // Opgave 2: her kommer til at stå new Taxameter(...)

            using (Driver.Simulate(meter))
            {
                var tui = new TaxameterTUI(meter);
                tui.Run();
            }
        }
Пример #2
0
        public static IDisposable Simulate(ITaxameter meter)
        {
            var random    = new Random();
            var hastighed = 0m;

            return(new Timer(s =>
            {
                if (meter.TurStartet.HasValue)
                {
                    var r = random.Next(100);

                    if (hastighed == 0m)
                    {
                        if (r < 20)
                        {
                            hastighed = 5;
                        }
                    }
                    else if (r < 10)
                    {
                        // 10% for at møde et lyskryds
                        hastighed = 0;
                    }
                    else if (r < 80)
                    {
                        // 70% for speeder
                        hastighed += random.Next(1, 5);
                    }
                    else
                    {
                        // 20% for brems
                        hastighed *= 0.7m;
                    }

                    hastighed = Math.Max(hastighed, 0);
                    hastighed = Math.Min(hastighed, 80);

                    meter.Kor(hastighed / 7200);
                }
            }, null, 0, 500));
        }
Пример #3
0
 public TaxameterTUI(ITaxameter meter)
 {
     this.meter = meter;
 }