示例#1
0
 /// <summary>
 /// Get status for dealer and player by end of turn
 /// </summary>
 private void FinishTurn()
 {
     DealerStatus = _gameCommands.GetDealerStatus(DealerCards.ToList());
     Players      = _gameCommands.GetPlayersStatuses(Players);
     Players      = _turnCommands.GetEndTurnStatusForPlayers(Players, DealerStatus);
     RaisePropertyChanged("DealerStatus");
     RoundStarted = false;
 }
示例#2
0
 /// <summary>
 /// Clear all cards from dealer and player by start of new round
 /// </summary>
 private void ClearCardsFromDealerAndPlayer()
 {
     DealerCards.Clear();
     foreach (var player in Players)
     {
         player.PlayerCards.Clear();
         player.PlayerStatus = new GameStatus();
     }
 }
示例#3
0
        /// <summary>
        /// Set hidden card to true
        /// </summary>
        private void RevealHiddenDealerCard()
        {
            var hiddenCard = DealerCards.Where(x => x.HideCard == true).ToList();

            foreach (var card in hiddenCard)
            {
                DealerCards.Remove(card);
                card.HideCard = false;
                DealerCards.Add(card);
            }
        }
示例#4
0
        /// <summary>
        /// Check if dealer should get cards or end turn
        /// </summary>
        private void DealerAction()
        {
            if (_turnCommands.CheckIfDealersTurn(Players.Select(x => x.PlayerStatus.Status).ToList()))
            {
                DealerTurnAction();
            }

            if (_turnCommands.EndTurn(Players.ToList(), DealerCards.ToList()))
            {
                FinishTurn();
            }
        }
示例#5
0
        /// <summary>
        /// Dealer reveal card and deals new card if handvalue is lower than 17
        /// </summary>
        private void DealerTurnAction()
        {
            var dealerHasHiddenCard = DealerCards.Any(x => x.HideCard == true);

            if (dealerHasHiddenCard)
            {
                RevealHiddenDealerCard();
            }
            while (_turnCommands.DealerDecision(_gameCommands.GetHandValue(DealerCards.ToList())))
            {
                DealerCards.Add(_turnCommands.Deal());
            }

            RaisePropertyChanged("CardsLeftInDeckCounter");
        }
示例#6
0
        /// <summary>
        /// Deal card by start of new round
        /// </summary>
        private void RoundStartDealCards()
        {
            foreach (var player in Players)
            {
                player.PlayerCards.Clear();
                player.PlayerCards.Add(_turnCommands.Deal());
                player.PlayerCards.Add(_turnCommands.Deal());
                player.PlayerStatus.Status = "Ready";
            }

            DealerCards.Add(_turnCommands.Deal());
            DealerCards.Add(_turnCommands.DealHidden());
            RaisePropertyChanged("CardsLeftInDeckCounter");
            RoundStarted = true;
        }
        public void AddCardToDealerHand(Card card)
        {
            if (card != null)
            {
                DealerCards.Add(card);
                if (DealerCards.Count() >= 2)
                {
                    DealerHand = new BlackjackHand(DealerCards);

                    if (DealerHand.IsBlackjack || DealerHand.Score == 21)
                    {
                        DealerHas21 = true;
                    }
                }
            }
        }
        private void onLoad()
        {
            gameGrid.Children.Clear();
            Game.GetDealer().ResetCards();
            Game.GetPlayer().ResetCards();

            //DealerPart
            _dealerCards             = new DealerCards(Game.GetDealer());
            _dealerCards.StartDealer = new DealerCards.StartDealerDelegate(NewGame);
            Grid.SetRow(_dealerCards, 0);
            Grid.SetColumn(_dealerCards, 0);

            gameGrid.Children.Add(_dealerCards);

            //PlayerPart

            _playerCards            = new PlayerCards(Game.GetPlayer());
            _playerCards.HitPlayer  = new PlayerCards.HitPlayerDelegate(Game.GetDeck().GetCard);
            _playerCards.StayPlayer = new PlayerCards.StayPlayerDelegate(PlayerStayed);

            Grid.SetRow(_playerCards, 1);
            Grid.SetColumn(_playerCards, 0);
            gameGrid.Children.Add(_playerCards);
        }