예제 #1
0
        private void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            /*Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves());
             *
             * waterskibaan.SporterStart(sporter);
             * Console.WriteLine(waterskibaan);
             * waterskibaan.VerplaatsKabel();
             * Console.WriteLine();*/


            if (loopCounter % 3 == 0)
            {
                Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves());
                NieuweBezoeker?.Invoke(new NieuweBezoekerArgs(sporter));
            }

            if (loopCounter % 20 == 0)
            {
                List <Sporter> sporters = instructieGroep.SportersVerlatenRij(wachtrijinstructie.GetAlleSporters().Count);
                InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(sporters));
            }

            if (loopCounter % 4 == 0)
            {
                LijnenVerplaatst?.Invoke();
            }
        }
예제 #2
0
        // Vangt de events op die om de seconde gebeuren
        public void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            // Houdt de hoeveelheid secondes bij dat het programma al loopt
            oteCounter++;
            Console.WriteLine(oteCounter + " seconde(s) voorbij");

            // Om de 3 seconden
            if (oteCounter % 3 == 0)
            {
                NieuweBezoekerArgs nieuweBezoekerArgs = new NieuweBezoekerArgs();
                nieuweBezoekerArgs.sporter = new Sporter(MoveCollection.GetWillekeurigeMoves(5));
                NieuweBezoekers(nieuweBezoekerArgs);
            }

            // Om de 20 seconden
            if (oteCounter % 20 == 0)
            {
                InstructieAfgelopenArgs instructieAfgelopenArgs = new InstructieAfgelopenArgs();
                instructieAfgelopenArgs.VorigeWachtrij   = wachtrijInstructie;
                instructieAfgelopenArgs.VolgendeWachtrij = wachtrijStarten;



                InstructieAfgelopen.Invoke(instructieAfgelopenArgs);
            }
            Console.WriteLine("\n" + wachtrijInstructie.GetAlleSporters().Count + " bezoeker(s) in de WachtrijInstructie");
            Console.WriteLine(instructieGroep.GetAlleSporters().Count + " bezoeker(s) in de InstructieGroep");
            Console.WriteLine(wachtrijStarten.GetAlleSporters().Count + " bezoeker(s) in de WachtrijStarten\n");
        }
예제 #3
0
 public void rondeSpel()
 {
     if (kabel.IsStartPositieLeeg() == true)
     {
         if (WachtrijStarten.ReturnWachtrij().Count != 0)
         {
             Sporter sporter = WachtrijStarten.SportersVerlatenRij(1).ElementAt(0);
             w.SporterStart(sporter);
         }
     }
     if (counter % 4 == 0)
     {
         LijnenVerplaatst.Invoke();
     }
     if (counter % 2 == 0)
     {
         NieuweBezoeker.Invoke(new NieuweBezoekerArgs(new Sporter()));
     }
     if (counter % 13 == 0)
     {
         NieuweInstructie.Invoke();
     }
     if (counter % 20 == 0)
     {
         InstructieAfgelopen.Invoke(new InstructieAfgelopenArgs(new List <Sporter>()));
     }
     counter++;
 }
예제 #4
0
        private void HandleInstructionEnded()
        {
            var args = new InstructieAfgelopenArgs
            {
                SportersKlaar = _instructieGroep.SportersVerlatenRij(5),
                SportersNieuw = _wachtrijInstrucie.SportersVerlatenRij(5)
            };

            InstructieAfgelopen?.Invoke(args);
        }
예제 #5
0
 private void OnInstructieIsAfgelopen(object source, EventArgs e)
 {
     if (tickCount % 20 == 0)
     {
         InstructieAfgelopenArgs afgelopenArgs = new InstructieAfgelopenArgs()
         {
             SportersKlaar  = instructieGroep.SportersVerlatenRij(5),
             NieuweSporters = wachtrijInstructie.SportersVerlatenRij(5)
         };
         InstructieAfgelopen?.Invoke(afgelopenArgs);
     }
 }
예제 #6
0
        private void OnInstructieAfgelopen(object source, EventArgs e)
        {
            if (_counter % 20 != 0)
            {
                return;
            }

            var args = new InstructieAfgelopenArgs
            {
                SportersKlaar = _instructieGroep.SportersVerlatenRij(5),
                SportersNieuw = _wachtrijInstructie.SportersVerlatenRij(5)
            };

            InstructieAfgelopen?.Invoke(args);
        }
예제 #7
0
 public void OnTimedEvent(Object source, EventArgs e)
 {
     teller++;
     if (teller % 3 == 0)
     {
         NieuweBezoeker.Invoke(new NieuweBezoekerArgs(new Sporter(MoveCollection.GetWillekeurigeMoves())));
         OutputStatus();
     }
     if (teller % 20 == 0)
     {
         int            aantal  = WachtI.GetAlleSporters().Count > 5 ? 5 : WachtI.GetAlleSporters().Count;
         List <Sporter> splijst = WachtI.SportersVerlatenRij(aantal);
         InstructieAfgelopen.Invoke(new InstructieAfgelopenArgs(splijst));
     }
     if (teller % 4 == 0)
     {
         LijnenVerplaatss.Invoke();
     }
 }
예제 #8
0
        private void VoegSporterToe(object source, ElapsedEventArgs e)
        {
            if (secondsSinceLastBezoeker > 3) //elke 3 seconden nieuwe sporter
            {
                Sporter sporter = NieuweSporterbezoeker();
                secondsSinceLastBezoeker = 0;
                NieuweBezoeker?.Invoke(new NieuweBezoekerArgs {
                    Sporter = sporter
                });
            }

            if (secondsSinceLastInstructie > 20) // elke 20 seconden nieuwe instructiegroep
            {
                secondsSinceLastInstructie = 0;
                InstructieAfgelopen.Invoke(new InstructieAfgelopenArgs
                {
                    Sporters               = wachtrijInstructie.SportersVerlatenRij(5),
                    SportersInInstructie   = instructiegroep.Queue.Count,
                    SportersKlaarVoorStart = wachtrijStarten.Queue.Count
                });
            }
            if (secondsSinceLijnenVerplaatst > 4)
            {
                secondsSinceLijnenVerplaatst = 0;
                LijnenVerplaatst.Invoke(new VerplaatsLijnenArgs(waterskiBaan._kabel._lijnen, waterskiBaan._lijnenVoorraad));
            }

            //secondes erbij, elke een losse anders heb je niet verschillende events, haalt de eerste het altijd terug naar 0
            secondsSinceLastBezoeker++;
            secondsSinceLastInstructie++;
            secondsSinceLijnenVerplaatst++;

            // print de waardes
            Console.WriteLine(waterskiBaan);
            Console.WriteLine(wachtrijInstructie);
            Console.WriteLine(instructiegroep);
            Console.WriteLine(wachtrijStarten);



            gameTimer.Start();
        }
        public void OnInstructieAfgelopen(InstructieAfgelopenArgs args)
        {
            int verschil = args.VolgendeWachtrij.MAX_LENGTE_RIJ - args.VolgendeWachtrij.GetAlleSporters().Count;
            int aantal;

            if (verschil > GetAlleSporters().Count)
            {
                aantal = GetAlleSporters().Count;
            }
            else
            {
                aantal = verschil;
            }

            List <Sporter> sportersNaarWachtrijStarten = SportersVerlatenRij(aantal);



            InstructieAfgelopen.Invoke(new InstructieAfgelopenArgs()
            {
                sportersNaarVolgendeGroep = sportersNaarWachtrijStarten
            });

            int rest = MAX_LENGTE_RIJ - GetAlleSporters().Count;

            if (rest > args.VorigeWachtrij.GetAlleSporters().Count)
            {
                rest = args.VorigeWachtrij.GetAlleSporters().Count;
            }

            List <Sporter> sportersVanWachtrijInstructie = args.VorigeWachtrij.SportersVerlatenRij(rest);



            foreach (Sporter sporter in sportersVanWachtrijInstructie)
            {
                SporterNeemPlaatsInRij(sporter);
            }
        }
예제 #10
0
        private void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            _counter++;
            _timer.Interval = getRandomTime();

            if (_counter % 3 == 0)
            {
                Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves());
                NieuweBezoeker?.Invoke(new NieuweBezoekerArgs(sporter));
            }

            if (_counter % 4 == 0)
            {
                LijnenVerplaatst?.Invoke();
            }

            if (_counter % 20 == 0)
            {
                List<Sporter> sporters = _instructieGroep.SportersVerlatenRij(_wachtrijInstructie.GetAlleSporters().Count);
                InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(sporters));
            }
            
        }
        private void OnTimedEvent(Object source, EventArgs e)
        {
            counter++;
            Console.WriteLine(waterskibaan.ToString());
            Console.WriteLine(wachtrijInstructie.ToString());
            Console.WriteLine(instructieGroep.ToString());
            Console.WriteLine(wachtrijStarten.ToString());

            if (counter % 3 == 0)
            {
                Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves());
                NieuweBezoeker?.Invoke(new NieuweBezoekerArgs(sporter));
            }

            if (counter % 20 == 0)
            {
                List <Sporter> sporters = instructieGroep.SportersVerlatenRij(wachtrijInstructie.GetAlleSporters().Count);
                InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(sporters));
            }
            if (counter % 4 == 0)
            {
                LijnenVerplaatst?.Invoke();
            }
        }
예제 #12
0
        public void timer_Tick(object sender, EventArgs e)
        {
            //Console.WriteLine($"loopCounter = {loopCounter}");
            if (loopCounter % 3 == 0)
            {
                Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves());
                NieuweBezoeker?.Invoke(new NieuweBezoekerArgs(sporter));
            }

            if (loopCounter % 10 == 0)
            {
                List <Sporter> sporters = instructieGroep.SportersVerlatenRij(wachtrijinstructie.GetAlleSporters().Count);
                InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(sporters));
                //Console.WriteLine($"Totaal aantal bezoekers = {logger.totaalAantalBezoekers()}");
                //Console.WriteLine($"Hoogste score tot nu toe = {logger.hoogsteScore()}");
                //Console.WriteLine($"Totaal aantal rondjes gedaan = {logger.totaalAantalRondjes()}");
            }

            if (loopCounter % 4 == 0)
            {
                LijnenVerplaatst?.Invoke();
            }
            loopCounter++;
        }
예제 #13
0
        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            if (count % 1 == 0)
            {
                if (waterskibaan.Kabel.IsStartPositieLeeg())
                {
                    try {
                        Sporter sp = wachtrijStarten.SportersVerlatenRij(1)[0];
                        sp.Skies    = new Skies();
                        sp.Zwemvest = new Zwemvest();
                        waterskibaan.SporterStart(sp);
                        Console.WriteLine(waterskibaan.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
            if (count % 3 == 0)
            {
                try
                {
                    NieuweBezoeker?.Invoke(new NieuweBezoekerArgs(new Sporter(MoveCollection.GetWillekeurigeMoves())));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("COUNT 3");
                    Console.WriteLine(ex.Message);
                }
            }
            if (count % 4 == 0)
            {
                try
                {
                    LijnenVerplaatst?.Invoke();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("count 4");
                    Console.WriteLine(ex.Message);
                }
            }

            if (count % 20 == 0)
            {
                try
                {
                    List <Sporter> Sporters = instructieGroep.SportersVerlatenRij(instructieGroep.MAX_LENGTE_RIJ);
                    InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(Sporters));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("count 20");
                    Console.WriteLine(ex.Message);
                }
            }

            if (count % 10 == 0)
            {
                Console.WriteLine("=====================INVENTARIS==================");
                Console.WriteLine($"WachtrijInstructie: {wachtrijinstructie.ToString()}");
                Console.WriteLine($"Instructiegroep: {instructieGroep.ToString()}");
                Console.WriteLine($"WachtrijStarten: {wachtrijStarten.ToString()}");
                Console.WriteLine("==================================================");
            }
            count += 1;
        }
예제 #14
0
 private void InstructieGroepLoop(object sender, ElapsedEventArgs e)
 {
     InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(InstructieGroep, WachtrijStarten));
 }
예제 #15
0
 public void BezoekersNaarInstructie(InstructieAfgelopenArgs args)
 {
     InstructieAfgelopen?.Invoke(args);
 }
예제 #16
0
 private void NewInstructieAfgelopen()
 {
     InstructieAfgelopen?.Invoke(new InstructieAfgelopenArgs(WachtrijInstructie.SportersVerlatenRij(5)));
 }
예제 #17
0
 public void TriggerInstructieAfgelopen(List <Sporter> sporters)
 {
     InstructieAfgelopen?.Invoke(this, new SportersEventArgs(sporters));
 }