/// <summary> /// Voeg een nieuwe speler aan het spel toe. /// </summary> /// <param name="naam">De naam van de nieuwe speler.</param> /// <param name="socket">tcp client van de speler.</param> /// <returns>De nieuwe speler.</returns> public Speler AddHumanSpeler(string naam, Socket socket) { Speler speler = new HumanSpeler(naam, socket); this.spelers.Add(speler); return(speler); }
/// <summary> /// Geeft de speler terug via zijn tcp client. /// </summary> /// <param name="socket">De tcp client van de pseler.</param> /// <returns>een speler.</returns> public Speler GetSpelerViaTcp(Socket socket) { foreach (Speler speler in this.spelers) { if (speler.IsHumanSpeler) { HumanSpeler humanSpeler = speler as HumanSpeler; if (humanSpeler.TcpClient == socket) { return(speler); } } } return(null); }
/// <summary> /// Controleert of de speler is humanspeler. /// Als de speler human speler is dan stuur een bericht naar deze speler. /// </summary> /// <param name="events">De event.</param> /// <param name="message">De bericht die naar de humam speler gaat sturen.</param> /// <param name="speler">De speler die een bericht zal ontvangen.</param> public void SendEenBericht(Events events, string message, Speler speler) { StringBuilder msg = new StringBuilder(); if (speler.IsHumanSpeler) { // verzamel het bericht die naar de speler zal sturen. msg.AppendFormat($"{events.ToString()}%{speler.Naam}%{message}%{this.gameVierOpEenRij.TegenSpeler(speler).Naam}"); // omdat de bericht gaat alleen naar de human speler sturen dan maak de speler als een human speler. HumanSpeler humanSpeler = speler as HumanSpeler; // stuur het bericht naar de speler. this.ProcessStream(msg.ToString(), humanSpeler.TcpClient); } }
/// <summary> /// Krijgt de inzet van een speler. /// </summary> /// <param name="speler">Een speler.</param> /// <returns>De inzet van deze speler.</returns> public int GetInzet(Speler speler) { if (speler == null) { throw new ArgumentException("Mag niet de speler null zijn."); } if (speler.IsHumanSpeler) { HumanSpeler humanSpeler = speler as HumanSpeler; return(humanSpeler.HuidigeInZet); } else { return(-1); } }
/// <summary> /// Geeft de speler eigen teken die hij het nodig heeft om te spelen. /// </summary> /// <param name="socket">De client van de speler.</param> /// <param name="tekenVanSpeler">De teken die de speler heeft gekozen.</param> /// <returns>De naam van de speler.</returns> public string TekenenBehandl(Socket socket, Teken tekenVanSpeler) { if (socket == null) { throw new ArgumentException("Mag speler niet null zijn"); } Speler deSpeler = null; // Zoek naar de speler via zijn tcp. foreach (Speler speler in this.spelers) { // Als de speler is humen speler dan mag zoeken naar zijn tcp. if (speler.IsHumanSpeler) { HumanSpeler humanSpeler = speler as HumanSpeler; if (humanSpeler.TcpClient == socket) { deSpeler = speler; speler.ZetTeken(tekenVanSpeler); } } } // zoek naar de andere teken. Teken teken = this.TegenDezeTeken(tekenVanSpeler); // geef de andere teken aan de de andere speler. if (deSpeler != null) { this.ZetEenTekenVoorAnderSpeler(deSpeler, teken); return(deSpeler.Naam); } return(null); }