Beispiel #1
0
        public void MakeNextPlayerTurn(ACard dealerCard)
        {
            if (!(numberOfMoves == 0 && GetSumOfCards() == 21))
            {
                PlayerTurnNow = GetNextTurn(dealerCard);
            }

            else if (dealerCard.CardName == CardNames.Ace)
            {
                PlayerTurn answer = GetAnswerAfterFirstBlackjack();
                if (answer == PlayerTurn.Take)
                {
                    PlayerTurnNow = PlayerTurn.Take;
                }
                else
                {
                    MakeBlackjackMultiplayer();
                    PlayerTurnNow = PlayerTurn.Stand;
                }
            }

            else
            {
                MakeBlackjackMultiplayer();
                PlayerTurnNow = dealerCard.CardNumber == 10 ? PlayerTurn.Stand : PlayerTurn.Blackjack;
            }
        }
Beispiel #2
0
        private ACard DealACard()
        {
            ACard g = _cards[0];

            _cards.RemoveAt(0);
            return(g);
        }
Beispiel #3
0
        public HttpResponseMessage Get(string cardNumber, string expiryYear)
        {
            HttpResponseMessage response = null;

            try {
                IValidationService validationService = new ValidationService();
                var validationResult = validationService.Validate(cardNumber, expiryYear);
                if (!validationResult.IsValid)
                {
                    response = new HttpResponseMessage()
                    {
                        Content = new JsonContent(validationResult)
                    };
                }
                else
                {
                    ICardService cardService = new CardService();
                    int          year        = cardService.GetCardExpiryYear(expiryYear);

                    ACard card = CardFactory.GetCard(cardNumber, year);
                    var   isValidCardNumber = card.IsValid();
                    response = new HttpResponseMessage()
                    {
                        Content = new JsonContent(new PaymentGW.Application.BounceContext.Validation.DTO.ValidationResult()
                        {
                            CardNumber = cardNumber,
                            IsValid    = isValidCardNumber,
                            Message    = string.Empty,
                            CardType   = card.GetCardType()
                        })
                    };
                }
            }catch (UnknownCardException uEx) {
                logger.Error(uEx);
                response = new HttpResponseMessage()
                {
                    Content = new JsonContent(new PaymentGW.Application.BounceContext.Validation.DTO.ValidationResult()
                    {
                        CardNumber = cardNumber,
                        IsValid    = false,
                        Message    = "Card is unknonw"
                    })
                };
            }catch (Exception ex) {
                logger.Error(ex);

                response = new HttpResponseMessage()
                {
                    Content = new JsonContent(new PaymentGW.Application.BounceContext.Validation.DTO.ValidationResult()
                    {
                        CardNumber = cardNumber,
                        IsValid    = false,
                        Message    = "There are errors happens .Please contact the PaymentGW ."
                    })
                };
            }

            return(response);
        }
Beispiel #4
0
 public override void TakeCard(ACard card)
 {
     if (VisibleCard == null)
     {
         VisibleCard = card;
     }
     this.CardsInHand.Add(card);
 }
Beispiel #5
0
        public void Test_InValid_VisaCard_NotLeapYear()
        {
            var   cardNumber = "4111111111111111";
            var   expiryYear = 2019;
            ACard card       = CardFactory.GetCard(cardNumber, expiryYear);

            Assert.IsFalse(card.IsValid());
            Assert.AreEqual(CardType.Visa, card.GetCardType());
        }
Beispiel #6
0
        public void Test_Valid_VisaCard_WithLeapYear()
        {
            var   cardNumber = "4111111111111111";
            var   expiryYear = 2020;
            ACard card       = CardFactory.GetCard(cardNumber, expiryYear);

            Assert.IsTrue(card.IsValid());
            Assert.AreEqual(CardType.Visa, card.GetCardType());
        }
Beispiel #7
0
        public void Test_Valid_MasterCard_PrimeNumber()
        {
            var   cardNumber = "5111111111111111";
            var   expiryYear = 2017;
            ACard card       = CardFactory.GetCard(cardNumber, expiryYear);

            Assert.IsTrue(card.IsValid());
            Assert.AreEqual(CardType.Master, card.GetCardType());
        }
Beispiel #8
0
        public void Test_Valid_JCBCard_16Digit_StartWith3()
        {
            var   cardNumber = "3111111111111111";
            var   expiryYear = 2019;
            ACard card       = CardFactory.GetCard(cardNumber, expiryYear);

            Assert.IsTrue(card.IsValid());
            Assert.AreEqual(CardType.JCB, card.GetCardType());
        }
Beispiel #9
0
        private void HandlePlayAction(string[] input, IoSession session)
        {
            if (_gstate.Equals(GameState.Playing) && _pstate.Equals(PlayerState.PlayerTurn))
            {
                if (input.Length == 2)
                {
                    this.PlayCardNumber(input, session);
                }
                else if (input.Length != 3)
                {
                    Console.WriteLine("Not enought argument, use /help to have further informations");
                }
                else
                {
                    string color = input[1];
                    int    value = this.getValue(input[2]);

                    if (value.Equals(0))
                    {
                        bool res = int.TryParse(input[2], out value);
                        if (!res)
                        {
                            Console.WriteLine("Second argument is not a number, run /help");
                            return;
                        }
                    }
                    if (!color.Equals("spike") && !color.Equals("spade") &&
                        !color.Equals("club") && !color.Equals("heart"))
                    {
                        Console.WriteLine("Color is not good, run /help");
                    }
                    else if (value < 7 || value > 14)
                    {
                        Console.WriteLine("Value is not good, run with /help");
                    }
                    else
                    {
                        ACard card = _hand.FindCard(value, color);
                        if (card == null)
                        {
                            Console.WriteLine("Cannot find the card in your hand, use /hand");
                        }
                        else
                        {
                            _hand.DeleteCard(card);
                            session.Write("0011 " + JsonConvert.SerializeObject(card));
                            _pstate = PlayerState.OtherTurn;
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("Not playing or not your turn");
            }
        }
Beispiel #10
0
        protected int GetIndexOfTurnListFromDealerCard(ACard dealerCard)
        {
            switch (dealerCard.CardNumber)
            {
            case 1:
            case 11: return(9);

            default: return(dealerCard.CardNumber - 2);
            }
        }
Beispiel #11
0
 private bool CheckIsCardInDeck(DeckOfCards deck, ACard searchedCard)
 {
     foreach (var card in deck.Deck)
     {
         if (CheckIsCardsEqual(card, searchedCard))
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #12
0
        public ACard GetOneCard(AParticipant player)
        {
            ACard card = this.Deck.First();

            if (card.CardName == CardNames.Ace)
            {
                ((AceCard)card).CheckIsMoreThenTwentyOne(player.CardsInHand);
            }
            RemoveCard(card);
            return(card);
        }
Beispiel #13
0
        public void TakeCardTest()
        {
            var dealer = new Dealer();
            var deck   = new DeckOfCards(countDecksInOne);

            deck.ShuffleDeck();

            ACard takenCard = deck.GetOneCard(dealer);

            Assert.IsTrue(deck.Deck.Count() == 51);

            Assert.IsFalse(CheckIsCardInDeck(deck, takenCard));
        }
Beispiel #14
0
        private void PrintPlayAction(string[] input)
        {
            ACard card = JsonConvert.DeserializeObject <CoincheCard>(input[2]);
            int   id   = int.Parse(input[1]);

            if (id.Equals(_partnerId))
            {
                Console.WriteLine("Your partner " + _partnerId.ToString() + " played " + card.Color + " " + card.Value);
            }
            else
            {
                Console.WriteLine("Player " + id.ToString() + " played " + card.Color + " " + card.Value);
            }
            _fold.Add(card);
        }
Beispiel #15
0
        private void GetCard(string[] input)
        {
            ACard card = JsonConvert.DeserializeObject <CoincheCard>(input[1]);

            if (card != null)
            {
                Console.WriteLine("New card received :");
                card.Dump();
                _hand.AddCard(card);
            }
            else
            {
                Console.WriteLine("Error while receiving the new card (cannot deserialize)");
                Environment.Exit(1);
            }
        }
Beispiel #16
0
        public bool DeleteCard(ACard cardToFind)
        {
            var index = 0;

            foreach (var card in _hand)
            {
                if (card.Color.Equals(cardToFind.Color) &&
                    card.Value.Equals(cardToFind.Value))
                {
                    _hand.RemoveAt(index);
                    return(true);
                }
                index++;
            }
            return(false);
        }
Beispiel #17
0
        public override PlayerTurn GetNextTurn(ACard dealerCard)
        {
            int sumCards = this.GetSumOfCards();

            if (sumCards == 21)
            {
                return(PlayerTurn.Blackjack);
            }
            if (sumCards >= 17)
            {
                return(PlayerTurn.Stand);
            }
            if (sumCards > 10)
            {
                return(PlayerTurn.Double);
            }
            return(PlayerTurn.Hit);
        }
Beispiel #18
0
        private void PlayCardNumber(string[] input, IoSession session)
        {
            int  value = 0;
            bool res   = int.TryParse(input[1], out value);

            if (!res)
            {
                Console.WriteLine("Second argument is not a number, run /help");
            }
            else if (value > _hand.GetSize())
            {
                Console.WriteLine("You don't have enought card in your hand");
            }
            else
            {
                ACard card = _hand.FindCard(value);
                session.Write("0011 " + JsonConvert.SerializeObject(card));
                _hand.DeleteCard(value);
                _pstate = PlayerState.OtherTurn;
            }
        }
Beispiel #19
0
 private void RemoveCard(ACard card)
 {
     this.Deck.Remove(card);
 }
Beispiel #20
0
 public virtual void TakeCard(ACard card)
 {
     this.CardsInHand.Add(card);
 }
Beispiel #21
0
 private bool CheckIsCardsEqual(ACard first, ACard second)
 {
     return(first.CardSuit == second.CardSuit && first.CardName == second.CardName);
 }
Beispiel #22
0
 public void GiveCard(ACard card, AParticipant player)
 {
     player.TakeCard(card);
 }
Beispiel #23
0
 public abstract PlayerTurn GetNextTurn(ACard dealerCard);
Beispiel #24
0
 public void ClearHands()
 {
     CardsInHand.Clear();
     VisibleCard = null;
 }
Beispiel #25
0
 public void Test_NotFoundType_StartWith9()
 {
     var   cardNumber = "9111111111111111";
     var   expiryYear = 2019;
     ACard card       = CardFactory.GetCard(cardNumber, expiryYear);
 }
Beispiel #26
0
 public void AddCard(ACard card)
 {
     _hand.Add(card);
 }
Beispiel #27
0
        private PlayerTurn GetTurnHardHand(ACard dealerCard, int sumCards)
        {
            int dealerIndex = GetIndexOfTurnListFromDealerCard(dealerCard);

            int hardTotalIndex = sumCards switch
            {