Пример #1
0
        //public method for searching familliar cards to passed in list of payer cards
        public List <FamiliarCardsData> FindMatchingCardsInPlayerHand(int playerNumber, PlayingCard card)
        {
            MatchingCardsFinder Finder = new MatchingCardsFinder(playerNumber, card, staticTest,
                                                                 AlreadyUsedCards[0], PlayersCurrentData[playerNumber].PlayerCards, demandedRank, demandedSuit, status);

            return(Finder.FindMatchingCardsInPlayerHand(ref AlreadyUsedCards, ref PlayersCurrentData));
        }
Пример #2
0
        //choicement of first card to put on the table
        private void ThisPlayerControl_FirstSelectedCardClick(object sender, MainUserEventArgs e)
        {
            try
            {
                List <PlayingCard>  permittedCardsList = new List <PlayingCard>();
                MatchingCardsFinder Finder             = new MatchingCardsFinder(thisPlayerNumber, e.PlayingCard, false,
                                                                                 AlreadyUsedCardsControl.Cards[0], ThisPlayerControl.ButtonCards, GameStateData.CurrentlyDemandedRank,
                                                                                 GameStateData.CurrentlyDemandedSuit, GameStateData.CurrentStatusOfTheGame);
                List <FamiliarCardsData> FamiliarCardsLIst = Finder.FindMatchingCardsInPlayerHand();
                foreach (FamiliarCardsData item in FamiliarCardsLIst)
                {
                    permittedCardsList.Add(item.Card);
                }
                permittedCardsList.Add(e.PlayingCard);
                //make not matching cards gray
                ThisPlayerControl.HighlightNotMatchingCards(permittedCardsList);
                //reset list of choosen cards and add the one clicked
                CardsChoosenByThisPlayer.Clear();
                CardsChoosenByThisPlayer.Add(e.PlayingCard);
                //make one card green
                ThisPlayerControl.MarkCardsAsAlreadyChoosen(CardsChoosenByThisPlayer);

                //demanding windows
                if (e.PlayingCard.Rank == CardRanks.Jack)
                {
                    RankDemandingWindowHandle(e.PlayingCard.Suit);
                }
                else if (e.PlayingCard.Rank == CardRanks.Ace)
                {
                    SuitDemandingWindowHandle();
                }

                MakeMoveButtonVisible = true;
            }
            catch (Exception ex)
            {
                var logger = NLog.LogManager.GetCurrentClassLogger();
                logger.Info($"Error while trying to choose firs card to put on the table: {ex.Message}.");
            }
            ThisPlayerChoosenCardsControl.AssignCardsContent(CardsChoosenByThisPlayer);
        }