/// <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); }
/// <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); } }