/// <summary> /// add een punt aan de winnaar. /// </summary> /// <param name="speler">hudige speler.</param> public virtual void UkrijgtEenPunt(Speler speler) { }
public Speler TegenSpeler(Speler huidigeSpeler) { return(this._spel.TegenSpeler(huidigeSpeler)); }
/// <summary> /// De winner. /// </summary> /// <param name="huidigeSpeler">Huidige speler.</param> /// <param name="spelers">Spelers.</param> public virtual void DeWinner(Speler huidigeSpeler, IList <Speler> spelers) { }
/// <summary> /// Wie heeft verloren. /// </summary> /// <param name="tegenspeler">Tegenspeler.</param> public virtual void UHeeftVerloren(Speler tegenspeler) { }
/// <summary> /// Vraag de speler of hij een ander rondje wil doen. /// </summary> /// <param name="stopDeSpel">true als ja . false als nee.</param> /// <param name="huidigeBord">huidigeBord.</param> /// <param name="vraagEenRondje">True of false. Wil je nog een rondje.</param> /// <param name="speler">De speler.</param> /// <param name="spelers">De spelers.</param> public void VraagNieuwRond(ref bool stopDeSpel, Bord huidigeBord, ref bool vraagEenRondje, Speler speler, IList <Speler> spelers) { Console.WriteLine("Wil je nog een rondje , J of N?"); string nieuwRondjes = Console.ReadLine(); nieuwRondjes.ToLower(); while ((nieuwRondjes != "j") && (nieuwRondjes != "n")) { Console.WriteLine("Geef J of N !"); nieuwRondjes = Console.ReadLine(); } if (nieuwRondjes == "j") { stopDeSpel = false; huidigeBord.ResetBord(); this.spel.NeiuwRondje(huidigeBord, spelers); } else { stopDeSpel = true; vraagEenRondje = false; this.DeWinner(speler, spelers); } }
/// <inheritdoc/> public override void UkrijgtEenPunt(Speler speler) { base.UkrijgtEenPunt(speler); Console.WriteLine(speler.Naam + " Je hebt : " + speler.Punten + " Punt !!"); }
/// <summary> /// Andre speler. /// </summary> /// <param name="huidigeSpeler">huidige speler.</param> /// <param name="spelers">spelers.</param> /// <returns>De tegen speler.</returns> public Speler TegenSpeler(Speler huidigeSpeler, IList <Speler> spelers) { return(this.spel.TegenSpeler(huidigeSpeler, spelers)); }
/// <summary> /// bepaal een vrij vak en kies dat. /// Kun je winnen? bepalen. /// </summary> /// <param name="bord">het bord waarp gespeeld wordt. </param> /// <returns>index van het veld op het bord. </returns> public override short BepaalZet(Bord bord) { // todo // welke vakjes zijn nog leeg? // vragen aan bord om aan te geven wat leeg is // loop door de lege velden. 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); return(index); } else { // ik heb niet gewonnen, reset het veld en laat de tegespeler de zet doen Speler tegenSpeler = bord.TegenSpeler(this); bord.DoeZet(tegenSpeler, index); if (bord.HeeftTekenGewonnen(tegenSpeler.TeGebruikenTeken)) { // tegenstander heeft gewonnen bord.ResetVeld(index); return(index); } } // altijd weer het bord resetten bord.ResetVeld(index); } // als ik hier kom, return(vrijeVelden[0]); // is er een volgende zet // ja, probeer die dan // nee, // loop dan weer door de mogelijke zetten heen // nee, is er dan een volgende // ja, kijk daar dan mee // nee // dan kies ik de eerste uit de mogelijke zetten // kan ik winnen? // ja, dan dat vakje kiezen // nee // kan de tegenstander winnen? // ja // dan dat vakje kiezen // anders kies de eerste Random random = new Random(); int bepaalHetBord = bord.Dimension * bord.Dimension; int result = random.Next(0, bepaalHetBord); short i = (short)result; return(i); }
/// <summary> /// Zet een teken op het bord. /// </summary> /// <param name="speler">Speler.</param> /// <param name="indexOpHetBord">Index op het bord.</param> public void DoeZet(Speler speler, short indexOpHetBord) { this.ConvertIndexToArray(indexOpHetBord, out short column, out short row); this.veldenOphetBord[column, row] = speler.TeGebruikenTeken; }
/// <inheritdoc/> public override void UkrijgtEenPunt(Speler speler) { }
/// <summary> /// Bepaal wie is de speler op dit moment. /// </summary> /// <param name="speler">Huidige Speler.</param> /// <returns>De spelr.</returns> public Speler WieIsSpeler(Speler speler) => speler;
/// <summary> /// Bepaalt wie wil starten. /// </summary> public void WieStart() { this.speler = this.WieIsSpeler(this.spelers[this.wieStart]); this.speler.WieStart(ref this.wieStart); }
/// <summary> /// Vraag om niuwe spel te doen . /// </summary> /// <param name="huidigeSpeler">huidigeSpeler.</param> private void VraagNieuwRondje(Speler huidigeSpeler) { HumanSpeler speler = new HumanSpeler(huidigeSpeler.Naam); speler.VraagNieuwRond(ref this.stopDeSpel, this.huidigeBord, ref this.vraagEenRondje, huidigeSpeler, this.spelers); }