Ejemplo n.º 1
0
 /// <summary>
 /// verplaats een pion de deadpositions naar het begin veld
 /// </summary>
 /// <param name="pion"></param>
 private void PlaatsNieuwePion(Pion pion)
 {
     if (pion.IsVerplaatsbaar)
     {
         pion.VerplaatsNaarStartVeld();
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// er is een pion verplaats op het bord word er geregeld dat het bord weer de juiste status heeft op de vlakken
        /// </summary>
        /// <param name="sender">is de pion die verplaatst is en het event getriggerd heeft</param>
        /// <param name="e"></param>
        void pion_Verplaatst(object sender, EventArgs e)
        {
            Pion pion = sender as Pion;

            //oude positie is weer vrij
            this.ChangeStatus(pion.LaatsteLocatie, VeldStatus.vrij);
            //verander nu de nieuwe locatie van de pion naar bezet met de kleur van de pion
            this.ChangeStatus(pion.Locatie, (VeldStatus)pion.Kleur);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// kijkt of er nog pionnen geslagen moeten worden
        /// </summary>
        /// <param name="locatie"></param>
        private void CheckOmTeSlaan(int locatie)
        {
            Pion pionOmTeSlaan = spel.PionOpLocation(locatie);

            //als er een pion op locatie waar hij naar toe gaat een pion staat wordt er eerst een opdracht gegeven om deze er af te slaan
            if (pionOmTeSlaan != null)
            {
                spel.SlaPion(pionOmTeSlaan);
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// geef de eerste positie terug die bechikbaar is voor deze pion om terug te gaan
 /// </summary>
 /// <param name="pion"></param>
 /// <returns></returns>
 internal int GeefVrijDeadPosition(Pion pion)
 {
     for (int i = 56 + 4 * pion.Kleur; i < 56 + 4 * pion.Kleur + 4; i++)
     {
         if (this.Bord.Fields[i] == VeldStatus.vrij)
         {
             return(i);
         }
     }
     throw new InvalidOperationException("er is geen vrij positie");
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Deze Pion is gekozen om de actie uit te voeren die mogelijk is op dit moment
        /// </summary>
        /// <param name="pion"></param>
        public void ActieMetPion(Pion pion)
        {
            //game moet al wel gestart zijn
            if (!this.gameStarted)
            {
                throw new InvalidOperationException("het spel is nog niet gestart");
            }

            //kijk of er wel met de pion gespeeld mag worden
            if (pion.IsVerplaatsbaar)
            {
                if (pion.Locatie > 55)//56 is de eerste locatie dat een deadposition is
                {
                    this.PlaatsNieuwePion(pion);
                }
                else
                {
                    this.VerplaatsPion(pion);
                }

                //check of speler gewonnen heeft
                this.CheckVoorWinst(this.ActueeleSpeler);

                //kijk of de persoon nog een keer mag gooien
                this.ActueeleSpeler.MagGooien = this.Dobbelsteen.Value == 6;
                //als de persoon niet meer mag gooien is de volgende speler aan de beurt
                if (!this.ActueeleSpeler.MagGooien)
                {
                    this.NieweSpeler();
                }
                else
                {
                    if (MagGooien != null)
                    {
                        MagGooien(this.Dobbelsteen, new EventArgs());
                    }
                }

                //zorg dat de huidige speler niks meer met zijn pion mag doen
                this.ActueeleSpeler.Hand.ForEach(x => x.IsVerplaatsbaar = false);
            }
        }
Ejemplo n.º 6
0
 //verplaats de pion weer naar de deadpositions
 internal void SlaPion(Pion pion)
 {
     pion.VerplaatsNaarDeadposition();
 }
Ejemplo n.º 7
0
 /// <summary>
 /// verplaats een Pion en aantal stappen vooruit als er net gegooid is
 /// </summary>
 /// <param name="pion"></param>
 private void VerplaatsPion(Pion pion)
 {
     pion.Verplaats(this.dobbelsteen.Value);
 }