Пример #1
0
        /// <summary>
        /// Doe een zet op het bord.
        /// </summary>
        /// <param name="nummer">Het nummer die de speler heeft gekozen.</param>
        /// <param name="huidigBord">Huidig bord.</param>
        /// <param name="game">Huidig spel.</param>
        public void Zet(short nummer, Bord huidigBord, GameOX game)
        {
            Bord bord = huidigBord;

            string tekenBords     = string.Empty;
            short  indexOpHetBord = nummer;

            bord.DoeZet(this, indexOpHetBord);
        }
Пример #2
0
        /// <inheritdoc/>
        public override void SpelStartedHandler(short nummer, GameOX gameOX, Bord bord)
        {
            bool         magZet      = true;
            List <short> vrijeVelden = bord.VrijVelden();

            foreach (short index in vrijeVelden)
            {
                bord.DoeZet(this, index);

                // als ik mijn teken daar invul, win ik dan.
                // of wint de tegenstander dan?
                if (bord.HeeftTekenGewonnen(this.TeGebruikenTeken))
                {
                    bord.ResetVeld(index);
                    this.Zet(index, bord, gameOX);
                    magZet = false;
                    break;
                }
                else
                {
                    Speler tegenSpeler = gameOX.TegenSpeler(this);

                    bord.DoeZet(tegenSpeler, index);
                    if (bord.HeeftTekenGewonnen(tegenSpeler.TeGebruikenTeken))
                    {
                        // tegenstander heeft gewonnen
                        bord.ResetVeld(index);
                        this.Zet(index, bord, gameOX);
                        magZet = false;
                        break;
                    }
                    else
                    {
                        bord.ResetVeld(index);
                    }
                }
            }

            if (magZet)
            {
                this.Zet(vrijeVelden[0], bord, gameOX);
            }
        }