예제 #1
0
        public void TestVerwijderLijnVanKabel()
        {
            Kabel   kabel   = new Kabel();
            Lijn    lijn    = new Lijn();
            Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves())
            {
                Skies    = new Skies(),
                Zwemvest = new Zwemvest()
            };

            lijn.Sporter = sporter;
            lijn.Sporter.AantalRondenNogTeGaan = 1;
            kabel.NeemLijnInGebruik(lijn);
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();
            kabel.VerschuifLijnen();

            Lijn testLine = kabel.VerwijderLijnVanKabel();

            Assert.AreEqual(lijn, testLine);
        }
예제 #2
0
        public SolidColorBrush SporterKledingKleur(Sporter sp)
        {
            SolidColorBrush kleur = new SolidColorBrush();

            kleur.Color = System.Windows.Media.Color.FromArgb(sp.KledingKleur.A, sp.KledingKleur.R, sp.KledingKleur.G, sp.KledingKleur.B);
            return(kleur);
        }
        private void DrawVisitor(Sporter sporter, double WidthOffset, double HightOffset, string wachtrij)
        {
            // Making the visitor

            Rectangle visitor = new Rectangle();

            visitor.Height = 20;
            visitor.Width  = 20;
            SolidColorBrush visotorColor = new SolidColorBrush(sporter.KledingKleur);

            visitor.Fill = visotorColor;


            // drawing the visitor
            Canvas.SetTop(visitor, HightOffset);  // place where next visitor is drawn down
            Canvas.SetLeft(visitor, WidthOffset); // place where next visitor is drawn to the right

            if (wachtrij.Contains("visitor"))
            {
                CanvasNewVisitor.Children.Add(visitor);
            }
            if (wachtrij.Contains("instructie"))
            {
                CanvasInstructieGroep.Children.Add(visitor);
            }
            if (wachtrij.Contains("starten"))
            {
                CanvasWachtrijStarten.Children.Add(visitor);
            }
            if (wachtrij.Contains("sporters"))
            {
                CanvasWater.Children.Add(visitor);
            }
        }
예제 #4
0
        // maakt een nieuwe sporter aan zonder zwemvest en skies
        private static Sporter NieuweSporterbezoeker()
        {
            Sporter sp            = new Sporter();
            var     rand          = new Random();
            int     aantalRondjes = rand.Next(1, 3);

            sp.AantalRondenNogTeGaan = aantalRondjes;
            return(sp);
        }
        public void StartSporter(LijnenVerplaatstArgs args)
        {
            if (waterskibaan.kabel.IsStartPositieLeeg() && !wachtrijStarten.IsWachtrijLeeg())
            {
                Sporter sporter = wachtrijStarten.wachtrij.Dequeue();

                sporter.Skies    = new Skies();
                sporter.Zwemvest = new Zwemvest();

                waterskibaan.SporterStart(sporter);
            }
        }
        private void UpdateHighestScoreLabel()
        {
            if (Game?.Logger.Bezoekers.Count() > 0)
            {
                Sporter bestSporter = Game.Logger.Bezoekers.OrderByDescending(i => i.Score).First();

                if (bestSporter != null && bestSporter.Score != 0)
                {
                    LabelBestMove.Content = $"{bestSporter.Id} Score: {bestSporter.Score}";
                }
            }
        }
예제 #7
0
        public void TestVerschuifLijnen()
        {
            Kabel   kabel   = new Kabel();
            Lijn    lijn    = new Lijn();
            Sporter sporter = new Sporter(MoveCollection.GetWillekeurigeMoves());

            sporter.AantalRondenNogTeGaan = new Random().Next(1, 3);
            lijn.Sporter = sporter;
            kabel.NeemLijnInGebruik(lijn);
            kabel.VerschuifLijnen();

            Assert.AreEqual(kabel.IsStartPositieLeeg(), true);
        }
예제 #8
0
        public Rectangle GetSporter(Sporter sporter)
        {
            SolidColorBrush fillBrush   = new SolidColorBrush(Color.FromRgb(sporter.KledingKleur.R, sporter.KledingKleur.G, sporter.KledingKleur.B));
            SolidColorBrush strokeBrush = new SolidColorBrush(Colors.Black);
            Rectangle       rect        = new Rectangle
            {
                Stroke = strokeBrush,
                Fill   = fillBrush,
                Height = 10,
                Width  = 10,
            };

            return(rect);
        }
예제 #9
0
        private static Rectangle CreateDrawableAthlete(Sporter athlete)
        {
            var fillBrush   = new SolidColorBrush(Color.FromRgb(athlete.KledingKleur.Item1, athlete.KledingKleur.Item2, athlete.KledingKleur.Item3));
            var strokeBrush = new SolidColorBrush(Colors.Black);
            var sp          = new Rectangle
            {
                Stroke  = strokeBrush,
                Fill    = fillBrush,
                Height  = 20,
                Width   = 20,
                RadiusX = 5,
                RadiusY = 5
            };

            return(sp);
        }
예제 #10
0
        public void StartSporter(LijnenVerplaatstArgs args)
        {
            if (waterskibaan.kabel.IsStartPositieLeeg() && !wachtrijStarten.IsWachtrijLeeg())
            {
                Console.WriteLine("start sporter good");
                List <Sporter> sporters = wachtrijStarten.SportersVerlatenRij(1);
                Sporter        sporter  = sporters.First();
                sporter.Skies    = new Skies();
                sporter.Zwemvest = new Zwemvest();

                waterskibaan.SporterStart(sporter);
            }
            else
            {
                Console.WriteLine("start sporter bad");
            }
        }
예제 #11
0
        private static Rectangle CreateDrawableSporter(Sporter sporter)
        {
            Color color       = Color.FromArgb(sporter.KledingKleur.A, sporter.KledingKleur.R, sporter.KledingKleur.G, sporter.KledingKleur.B);
            var   converter   = new BrushConverter();
            var   fillBrush   = (SolidColorBrush)converter.ConvertFromString(color.ToString());
            var   strokeBrush = new SolidColorBrush(Colors.Black);
            var   sp          = new Rectangle
            {
                Stroke  = strokeBrush,
                Fill    = fillBrush,
                Height  = 20,
                Width   = 20,
                RadiusX = 5,
                RadiusY = 5
            };

            return(sp);
        }
예제 #12
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();
        }
        private void DrawNewVisitor(Sporter sporter, int offset, int leftOffset)
        {
            SolidColorBrush fillBrush   = new SolidColorBrush(Colors.Blue);
            SolidColorBrush strokeBrush = new SolidColorBrush(Colors.Black);

            Rectangle leftEllipse = new Rectangle
            {
                Stroke  = strokeBrush,
                Fill    = fillBrush,
                Height  = 20,
                Width   = 20,
                RadiusX = 5,
                RadiusY = 5
            };

            int setLeft = 5 + ((leftOffset - 1) * 32);

            Canvas.SetTop(leftEllipse, 5 + offset);
            Canvas.SetLeft(leftEllipse, setLeft);

            canvas.Children.Add(leftEllipse);
        }
예제 #14
0
 public NieuweBezoekerArgs(Sporter sporter)
 {
     Sporter = sporter;
 }
 public LijnenVerplaatstArgs(Sporter sp) : this()
 {
     Sporter = sp;
 }
예제 #16
0
 public void TriggerNieuweBezoeker(Sporter sporter)
 {
     NieuweBezoeker?.Invoke(this, new SporterEventArgs(sporter));
 }
 public LijnenVerplaatstArgs()
 {
     Sporter = null;
 }
 private double CalcColorLight(Sporter sporter)
 {
     return(Math.Sqrt(sporter.KledingKleur.Item1) + Math.Sqrt(sporter.KledingKleur.Item2) + Math.Sqrt(sporter.KledingKleur.Item3));
 }
        private void DrawSporter()
        {
            int positie = 0;
            int a       = 0;

            LinkedList <Lijn> lijnen = _Game.waterskibaan.kabel._lijnen;

            foreach (Lijn lijn in lijnen)
            {
                positie = lijn.PositieOpDeKabel;
                Sporter sp = lijn.Sporter;


                if (positie == 0)
                {
                    LabelMovePlace0.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 100, 250, "sporters");
                }
                if (positie == 1)
                {
                    LabelMovePlace1.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 100, 125, "sporters");
                }
                if (positie == 2)
                {
                    LabelMovePlace2.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 208, 15, "sporters");
                }
                if (positie == 3)
                {
                    LabelMovePlace3.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 332, 15, "sporters");
                }
                if (positie == 4)
                {
                    LabelMovePlace4.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 446, 125, "sporters");
                }
                if (positie == 5)
                {
                    LabelMovePlace5.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 446, 250, "sporters");
                }
                if (positie == 6)
                {
                    LabelMovePlace6.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 446, 375, "sporters");
                }
                if (positie == 7)
                {
                    LabelMovePlace7.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 332, 482, "sporters");
                }
                if (positie == 8)
                {
                    LabelMovePlace8.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 208, 482, "sporters");
                }
                if (positie == 9)
                {
                    LabelMovePlace9.Content = sp.HuidigeMove;
                    DrawVisitor(sp, 100, 375, "sporters");
                }
            }
        }
예제 #20
0
        public SolidColorBrush GetKleurSporter(Sporter sporter)
        {
            SolidColorBrush color = new SolidColorBrush(Color.FromArgb(sporter.KledingKleur.A, sporter.KledingKleur.R, sporter.KledingKleur.G, sporter.KledingKleur.B));

            return(color);
        }
예제 #21
0
        private Card RandomCard(Vector2 position, bool front, int playerID)
        {
            Card c = null;

            if (Globals.r.Next(4) == 0)
            {
                int cardsCount = 31;
                int rn         = Globals.r.Next(cardsCount);
                switch (rn)
                {
                case 0:
                    c = new Actor(position, front, playerID);
                    break;

                case 1:
                    c = new Artist(position, front, playerID);
                    break;

                case 2:
                    c = new Astrophysicist(position, front, playerID);
                    break;

                case 3:
                    c = new Babysitter(position, front, playerID);
                    break;

                case 4:
                    c = new BabysitterU(position, front, playerID);
                    break;

                case 5:
                    c = new BusDriver(position, front, playerID);
                    break;

                case 6:
                    c = new Conman(position, front, playerID);
                    break;

                case 7:
                    c = new DeliveryPerson(position, front, playerID);
                    break;

                case 8:
                    c = new DrugDealer(position, front, playerID);
                    break;

                case 9:
                    c = new FastFoodEmployee(position, front, playerID);
                    break;

                case 10:
                    c = new Hacker(position, front, playerID);
                    break;

                case 11:
                    c = new Hitman(position, front, playerID);
                    break;

                case 12:
                    c = new HumanTrafficker(position, front, playerID);
                    break;

                case 13:
                    c = new IndieGameDev(position, front, playerID);
                    break;

                case 14:
                    c = new Influencer(position, front, playerID);
                    break;

                case 15:
                    c = new InstaModel(position, front, playerID);
                    break;

                case 16:
                    c = new InternDev(position, front, playerID);
                    break;

                case 17:
                    c = new JuniorDev(position, front, playerID);
                    break;

                case 18:
                    c = new Musician(position, front, playerID);
                    break;

                case 19:
                    c = new OnlyFans(position, front, playerID);
                    break;

                case 20:
                    c = new Referee(position, front, playerID);
                    break;

                case 21:
                    c = new RiceFarmer(position, front, playerID);
                    break;

                case 22:
                    c = new Santa(position, front, playerID);
                    break;

                case 23:
                    c = new Shelfstacker(position, front, playerID);
                    break;

                case 24:
                    c = new Shoplifter(position, front, playerID);
                    break;

                case 25:
                    c = new Sporter(position, front, playerID);
                    break;

                case 27:
                    c = new Streamer(position, front, playerID);
                    break;

                case 28:
                    c = new SugarDaddy(position, front, playerID);
                    break;

                case 29:
                    c = new TaxiDriver(position, front, playerID);
                    break;

                case 30:
                    c = new Writer(position, front, playerID);
                    break;

                case 26:
                    c = new YogaInstructor(position, front, playerID);
                    break;
                }
            }
            else
            {
                int cardsCount = 12;
                int rn         = Globals.r.Next(cardsCount);
                switch (rn)
                {
                case 0:
                    c = new Alcohol(position, front, playerID);
                    break;

                case 1:
                    c = new Drugs(position, front, playerID);
                    break;

                case 2:
                    c = new EatingOut(position, front, playerID);
                    break;

                case 3:
                    c = new FastFood(position, front, playerID);
                    break;

                case 4:
                    c = new Gambling(position, front, playerID);
                    break;

                case 5:
                    c = new Gaming(position, front, playerID);
                    break;

                case 6:
                    c = new Joint(position, front, playerID);
                    break;

                case 7:
                    c = new PomXML(position, front, playerID);
                    break;

                case 8:
                    c = new Shopping(position, front, playerID);
                    break;

                case 9:
                    c = new Smoking(position, front, playerID);
                    break;

                case 10:
                    c = new SocialMedia(position, front, playerID);
                    break;

                case 11:
                    c = new Streaming(position, front, playerID);
                    break;
                }
            }

            return(c);
        }
예제 #22
0
 public SporterEventArgs(Sporter sporter)
 {
     Sporter = sporter;
 }
예제 #23
0
        private void UpdateCanvas()
        {
            try
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    // Counters
                    LineCounter.Content   = Game.Waterskibaan.LijnenVoorraad.GetAantalLijnen();
                    PlayerCounter.Content = Game.Logger.GetTotaalBezoekers();
                    HighestScore.Content  = Game.Logger.GetHoogsteScore();
                    RedCounter.Content    = Game.Logger.GetAantalBezoekersMetRood();
                    LapsCounter.Content   = Game.Logger.GetTotaalAantalRondjes();
                    AllMoves.Content      = Game.Logger.AlleHuidigeMoves();

                    //clear
                    ClearCanvas(CanvasWachtInstructie);

                    // WachtrijInstructie
                    int TempWachtrijInstrCountHorizontal = 1;
                    int TempWachtrijInstrCountVertical   = 1;
                    foreach (Sporter s in Game.WachtrijInstructie.Rij)
                    {
                        if (TempWachtrijInstrCountHorizontal == 20)
                        {
                            TempWachtrijInstrCountHorizontal = 1;
                            TempWachtrijInstrCountVertical++;
                        }
                        DrawSporter(TempWachtrijInstrCountHorizontal, TempWachtrijInstrCountVertical, 10, Color.FromArgb(s.KledingKleur.A, s.KledingKleur.R, s.KledingKleur.G, s.KledingKleur.B), CanvasWachtInstructie);
                        TempWachtrijInstrCountHorizontal++;
                    }

                    // Instructie
                    ClearCanvas(CanvasInstructie);
                    int TempInstrCountHorizontal = 1;
                    foreach (Sporter s in Game.InstructieGroep.Rij)
                    {
                        DrawSporter(TempInstrCountHorizontal, 1, 15, Color.FromArgb(s.KledingKleur.A, s.KledingKleur.R, s.KledingKleur.G, s.KledingKleur.B), CanvasInstructie);
                        TempInstrCountHorizontal++;
                    }

                    // WachtStart
                    ClearCanvas(CanvasWachtStart);
                    int TempWachtrijStartCountHorizontal = 1;
                    int TempWachtrijStartCountVertical   = 1;
                    foreach (Sporter s in Game.WachtrijStarten.Rij)
                    {
                        if (TempWachtrijStartCountHorizontal == 20)
                        {
                            TempWachtrijStartCountHorizontal = 1;
                            TempWachtrijStartCountVertical++;
                        }
                        DrawSporter(TempWachtrijStartCountHorizontal, TempWachtrijStartCountVertical, 10, Color.FromArgb(s.KledingKleur.A, s.KledingKleur.R, s.KledingKleur.G, s.KledingKleur.B), CanvasWachtStart);
                        TempWachtrijStartCountHorizontal++;
                    }

                    // Waterskibaan;
                    ClearCanvas(CanvasBaan);
                    int[,] locations = new int[, ]
                    {
                        { 2, 4 },
                        { 4, 4 },
                        { 6, 4 },
                        { 8, 4 },
                        { 10, 4 },
                        { 10, 8 },
                        { 8, 8 },
                        { 6, 8 },
                        { 4, 8 },
                        { 2, 8 }
                    };

                    DrawSporter(6, 6, 25, Color.FromRgb(0, 0, 0), CanvasBaan);

                    int i = 0;
                    foreach (Lijn lijn in Game.Waterskibaan.Kabel.GetLijnen().ToList())
                    {
                        Sporter sp = lijn.Sporter;

                        DrawSporter(locations[i, 0], locations[i, 1], 25, Color.FromArgb(sp.KledingKleur.A, sp.KledingKleur.R, sp.KledingKleur.G, sp.KledingKleur.B), CanvasBaan);
                        // Label number
                        DrawLabel(locations[i, 0], locations[i, 1], i.ToString(), CanvasBaan, false);

                        //Label action
                        if (sp.HuidigeMove != null)
                        {
                            DrawLabel(locations[i, 0], locations[i, 1], sp.HuidigeMove.ToString(), CanvasBaan, true);
                        }

                        // Line to cable
                        DrawLine(locations[i, 0], locations[i, 1], CanvasBaan);
                        i++;
                        sp = null;
                    }

                    // Lichste;
                    ClearCanvas(CanvasLichsteBezoekers);
                    int limitCount = 0;
                    foreach (var item in Game.Logger.SorteerOpLichsteKleur().Reverse())
                    {
                        //CanvasLichsteBezoekers
                        if (limitCount <= 9)
                        {
                            DrawSporter(1 + limitCount, 1, 10, Color.FromArgb(item.Value.A, item.Value.R, item.Value.G, item.Value.B), CanvasLichsteBezoekers);
                            limitCount++;
                        }
                    }
                });
            }
            catch (NullReferenceException) {
                Environment.Exit(0);
            }
        }
예제 #24
0
 public SolidColorBrush GetSporterBackgroundColor(Sporter sporter)
 {
     return(new SolidColorBrush(Color.FromRgb(sporter.KledingKleur.Item1, sporter.KledingKleur.Item2, sporter.KledingKleur.Item3)));
 }
예제 #25
0
 public void VoegSporterToeAanRij(Sporter sporter)
 {
     Wachtrij.Enqueue(sporter);
 }
예제 #26
0
 public void GooiSportersinLijst(Sporter sp)
 {
     Logging.Add(sp);
     AantalRondjesTotaal += sp.AantalRondenNogTeGaan;
 }