示例#1
0
        public Scorebord(Size schermformaat, Speelveld speelveld)
        {
            int schermbreedte = schermformaat.Width;

            s             = speelveld;
            this.Size     = new Size(300, 175);
            this.Location = new Point(50, schermformaat.Height -
                                      speelveld.Height - 225);
            this.Invalidate();
            this.Paint += Handle_Paint;
        }
示例#2
0
        public void Insluiten(Speelveld speelveld)
        {
            Vakje[,] vakjes = speelveld.vakjes;
            bool ingesloten;

            for (int i = -1; i <= 1; i++)
            {
                for (int j = -1; j <= 1; j++)
                {
                    int di = i, dj = j;
                    ingesloten = false;
                    int ingeslotenn = 0;

                    while (x + di >= 0 && x + di < speelveld.xvakjes &&
                           y + dj >= 0 && y + dj < speelveld.yvakjes) //
                    {
                        if (vakjes[x + di, y + dj].gevuld &&
                            vakjes[x + di, y + dj].rood != speelveld.roodbeurt)
                        {
                            ingesloten = true;
                            ingeslotenn++;
                        }

                        else if (vakjes[x + di, y + dj].gevuld &&
                                 vakjes[x + di, y + dj].rood ==
                                 speelveld.roodbeurt && ingesloten)
                        {
                            for (int t = 1; t <= ingeslotenn; t++)
                            {
                                vakjes[x + i * t, y + j * t].rood =
                                    speelveld.roodbeurt;
                            }
                            break;
                        }

                        else
                        {
                            break;
                        }

                        di = di + i;
                        dj = dj + j;
                    }
                }
            }
        }
示例#3
0
        public bool Legaal(Speelveld speelveld, bool roodbeurt)
        {
            Vakje[,] vakjes = speelveld.vakjes;
            bool ingesloten;

            if (this.gevuld)
            {
                return(false);
            }

            for (int i = -1; i <= 1; i++)
            {
                for (int j = -1; j <= 1; j++)
                {
                    int di = i, dj = j;
                    ingesloten = false;

                    while (x + di >= 0 && x + di < speelveld.xvakjes &&
                           y + dj >= 0 && y + dj < speelveld.yvakjes) //
                    {
                        if (vakjes[x + di, y + dj].gevuld &&
                            vakjes[x + di, y + dj].rood != roodbeurt)
                        {
                            ingesloten = true;
                        }

                        else if (vakjes[x + di, y + dj].gevuld &&
                                 vakjes[x + di, y + dj].rood == roodbeurt &&
                                 ingesloten)
                        {
                            return(true);
                        }

                        else
                        {
                            break;
                        }

                        di = di + i;
                        dj = dj + j;
                    }
                }
            }
            return(false);
        }
示例#4
0
 public void Tekenvakje(Graphics g, int grootte, Speelveld speelveld)
 {
     if (gevuld)
     {
         if (rood)
         {
             g.FillEllipse(Brushes.Red, x * grootte + 1, y * grootte + 1,
                           grootte - 2, grootte - 2);
         }
         else
         {
             g.FillEllipse(Brushes.Blue, x * grootte + 1,
                           y * grootte + 1, grootte - 2, grootte - 2);
         }
     }
     else if (this.Legaal(speelveld, speelveld.roodbeurt) &&
              speelveld.help)
     {
         g.FillEllipse(Brushes.LightGray, x * grootte + 1,
                       y * grootte + 1, grootte - 2, grootte - 2);
     }
 }
示例#5
0
        public Scherm()
        {
            speelveld       = new Speelveld();
            this.ClientSize = new Size(speelveld.Width + 100,
                                       speelveld.Height + 300);
            speelveld.Location = new Point(50, ClientSize.Height -
                                           speelveld.Height - 50);
            scorebord = new Scorebord(this.ClientSize, speelveld);

            reset           = new Button();
            reset.Location  = new Point(50, 20);
            reset.Text      = "Nieuw Spel";
            reset.BackColor = Color.LightGray;
            reset.Click    += (sender, e) =>
            {
                speelveld.Leeg();
                speelveld.pasknop = false;
                scorebord.Invalidate();
                speelveld.Invalidate();
            };

            help           = new Button();
            help.Location  = new Point(150, 20);
            help.Text      = "Help";
            help.BackColor = Color.LightGray;
            help.Click    += (sender, e) =>
            {
                speelveld.help = !speelveld.help;
                speelveld.Invalidate();
            };

            pas           = new Button();
            pas.Location  = new Point(250, 20);
            pas.Text      = "Overslaan";
            pas.BackColor = Color.LightGray;
            pas.Click    += (sender, e) =>
            {
                speelveld.roodbeurt = !speelveld.roodbeurt;
                Controls.Remove(pas);
                scorebord.Invalidate();
            };

            speelveld.MouseClick += (sender, e) =>
            {
                Invalidate();
                scorebord.Invalidate();

                if (speelveld.pasknop)
                {
                    Controls.Add(pas);
                }
                else
                {
                    Controls.Remove(pas);
                }

                if (speelveld.Gameover())
                {
                    Controls.Remove(pas);
                }
            };

            Controls.Add(speelveld);
            Controls.Add(scorebord);
            Controls.Add(reset);
            Controls.Add(help);
        }