/// <summary> /// Chack of mag spelen. /// Als ja dan staart het spel. /// als Nee Wacht op andere speler. /// </summary> protected override void HandlHetSpel() { if (this.game.KanStarten()) { SpeelVlak speelVlak = new SpeelVlak(8); GameController controller = new GameController(speelVlak, this.game); controller.GameStart(); Console.ReadKey(); } }
/// <inheritdoc/> public override int DoeZet(string inzet, SpeelVlak speelVlak, Game game) { for (int kolom = 0; kolom < speelVlak.Dimension; kolom++) { if (!speelVlak.MagInzetten(kolom)) { continue; } // Controleert of kan de computer winnen. int veldOpKolom = speelVlak.ZetTekenOpSpeelvlak(kolom, this.GebruikTeken); if (speelVlak.HeeftGewonnen(this.GebruikTeken)) { // Als ja, dan reset deze veld en return het nummer van de kolom. speelVlak.ResetVeld(kolom, veldOpKolom); return(kolom); } // als kan niet winnen, dan controleert of de andere speler kan winnen. else { // reset eerst de oude teken en daarna ga verder. speelVlak.ResetVeld(kolom, veldOpKolom); // Hier breng ik de tegenspeler want ik heb zijn teken nodig om te controleren of kan hij winnen. Speler tegenSpeler = game.TegenSpeler(this); veldOpKolom = speelVlak.ZetTekenOpSpeelvlak(kolom, tegenSpeler.GebruikTeken); if (speelVlak.HeeftGewonnen(tegenSpeler.GebruikTeken)) { // Als de tegenspeler kan winnen dan zet je teken dus verkom je dat. speelVlak.ResetVeld(kolom, veldOpKolom); return(kolom); } } speelVlak.ResetVeld(kolom, veldOpKolom); } // Als de computer speler heeft geen goede veld gevangen, dan geef de eerste kolom terug om te teken te zeten op het speelvlak. int random; do { random = this.GeefRandomNummer(speelVlak); }while (!speelVlak.MagInzetten(random)); return(random); }
/// <inheritdoc/> public override int DoeZet(string inzet, SpeelVlak speelVlak, Game game) { // het nummer die de speler heeft gekozen. int.TryParse(inzet, out int keuzeNummer); if (keuzeNummer < 0 || keuzeNummer > speelVlak.Dimension) { throw new ArgumentException("Mag niet de inzet mider dan nul of hoger dan de dimension van het speelvlak"); } // doet een nummer af want de array start van nummer nul. this.HuidigeInZet = keuzeNummer - 1; // De speler gaat een nummer tussen een en de dimension kiesen. return(this.HuidigeInZet); }
/// <summary> /// tekent op het speelvlak het teken die de speler wil inzetten op het speelvlak. /// </summary> /// <param name="inzet">De keuze van de speler.</param> /// <param name="speelVlak">Het speelvalk.</param> /// <param name="teken">Het teken van de speler.</param> public void ZetTekenOpSpeelvlak(int inzet, SpeelVlak speelVlak, Teken teken) { if (teken == Teken.Undefined) { throw new ArgumentException("Mag niet de teken Undefined zijn of null."); } if (speelVlak == null) { throw new ArgumentException("mag niet het speelvlak null zijn."); } if (inzet < 0) { throw new ArgumentException("Mag niet het inzet nul of minder zijn."); } speelVlak.ZetTekenOpSpeelvlak(inzet, teken); }
/// <summary> /// Check of de speler heeft gewonnen of niet. /// </summary> /// <param name="speelVlak">Het speelvlak.</param> /// <param name="teken">De teken van de speler die zal nagaan.</param> /// <returns>Heeft vier op een rij of niet.</returns> public bool HeeftGewonnen(SpeelVlak speelVlak, Teken teken) { return(speelVlak.HeeftGewonnen(teken)); }
private int GeefRandomNummer(SpeelVlak speelVlak) { Random random = new Random(); return(random.Next(speelVlak.Dimension)); }
/// <summary> /// Initializes a new instance of the <see cref="GameController"/> class. /// </summary> /// <param name="gameVierOpEenRij">Game.</param> public GameController(Game gameVierOpEenRij) { this.gameVierOpEenRij = gameVierOpEenRij; this.speelVlak = gameVierOpEenRij.SpeelVlak; }