Beispiel #1
0
        public List <CL_cards> InitDeck()
        {
            deck = new List <CL_cards>();

            List <string> values = new List <string>()
            {
                "one", "two", "three", "four", "five", "six", "seven", "heigt", "nine", "ten", "jack", "quenn", "king"
            };
            List <string> suits = new List <string>()
            {
                "Hearts", "Diamonds", "Clubs", "Spades"
            };

            suits.ForEach(suit => values.ForEach(value => {
                CL_cards card = new CL_cards();
                card.SetCard(value, suit);

                // Console.WriteLine(card.value + " of " + card.suit + " added");
                deck.Add(card);
            }));

            // Console.WriteLine(deck.Count.ToString(), " cartes ont été ajoutées");
            return(deck);
        }
        internal void DesignedWinner(CL_player player1, CL_player player2, CL_player bank)
        {
            List <CL_player> playerList = new List <CL_player> {
                player1, player2, bank
            };

            List <int> listPoints = new List <int>()
            {
                player1.points, player2.points, bank.points
            };

            listPoints.Sort();

            CL_player winner;

            if (bank.hand[0].value.Equals(bank.hand[1].value).Equals(bank.hand[2].value))
            {
                bank.Victory++;
                // Console.WriteLine("The bank win with 3 identicals cards \n3 " + bank.hand[0].value);
            }
            else
            {
                if (listPoints.FindAll(points => points == listPoints[listPoints.Count - 1]).Count == 1)
                {
                    winner = playerList.Find(player => player.points == listPoints[listPoints.Count - 1]);
                }
                else
                {
                    List <CL_player> playersWithWinnerScore = playerList.FindAll(player => player.points == listPoints[listPoints.Count - 1]);

                    CL_cards higherCard      = null;
                    int      higherCardValue = 0;

                    playersWithWinnerScore.ForEach(player => {
                        player.hand.ForEach(card =>
                        {
                            int cardValue = 0;

                            switch (card.value)
                            {
                            case "king":
                                cardValue = 13;
                                break;

                            case "queen":
                                cardValue = 12;
                                break;

                            case "jack":
                                cardValue = 11;
                                break;

                            default:
                                Value result = (Value)Enum.Parse(typeof(Value), card.value);
                                cardValue    = (int)result;
                                break;
                            }

                            if (cardValue > higherCardValue)
                            {
                                higherCard = card;
                            }
                        });
                    });

                    winner = playersWithWinnerScore.Find(player => player.hand.Contains(higherCard));
                }

                winner.Victory++;
                Console.WriteLine("Le gagnant avec un score de " + winner.points + " est " + winner.Name);
            }

            listPoints.Clear();
            playerList.Clear();
        }
Beispiel #3
0
 public void GiveCard(CL_cards card)
 {
     hand.Add(card);
 }