Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
            }
        }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
        /// <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);
        }