Ejemplo n.º 1
0
        /// <summary>
        /// Rolls the dice
        /// </summary>
        /// <returns></returns>
        public async void RollDice()
        {
            // if rolled score of dice is 6 and count is less than 2 keep rolling the dice
            if ((value == 6 && rollCount < 4) || rollCount == 0 || CanRollDice)
            {
                value    = rollDice.Next(1, 7);
                DiceText = value.ToString();
                Dice.Add(value);
                rollCount++;
                if (value == 6)
                {
                    CanRollDice = true;
                }
                else
                {
                    CanRollDice = false;
                }
                bool IsAllPiecesClosed = true;
                switch (ActivePlayerType)
                {
                case PlayerType.Red:
                {
                    foreach (Piece item in RedPlayer.Pieces)
                    {
                        if (item.IsOpen == true)
                        {
                            IsAllPiecesClosed = false;
                            break;
                        }
                    }
                }
                break;

                case PlayerType.Blue:
                {
                    foreach (Piece item in BluePlayer.Pieces)
                    {
                        if (item.IsOpen == true)
                        {
                            IsAllPiecesClosed = false;
                            break;
                        }
                    }
                }
                break;

                case PlayerType.Green:
                {
                    foreach (Piece item in GreenPlayer.Pieces)
                    {
                        if (item.IsOpen == true)
                        {
                            IsAllPiecesClosed = false;
                            break;
                        }
                    }
                }
                break;

                case PlayerType.Yellow:
                {
                    foreach (Piece item in YellowPlayer.Pieces)
                    {
                        if (item.IsOpen == true)
                        {
                            IsAllPiecesClosed = false;
                            break;
                        }
                    }
                }
                break;
                }
                if (!Dice.Contains(6) && IsAllPiecesClosed)
                {
                    AlertText = "Next player turn";
                    await Task.Delay(1500);

                    if (ActivePlayerType < NumberOfPlayer)
                    {
                        ActivePlayerType++;
                        rollCount = 0;
                        Dice.Clear();
                        PlayerTurn = ActivePlayerType.ToString();
                        DiceText   = "Roll Dice!";
                    }
                    else
                    {
                        ActivePlayerType = 0;
                        rollCount        = 0;
                        Dice.Clear();
                        PlayerTurn = ActivePlayerType.ToString();
                        DiceText   = "Roll Dice!";
                    }
                    AlertText = "";
                }
            }
        }