//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)); }
//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); }