Example #1
0
 private void GetCardFromDeck(int cardChoice)
 {
     if (Deck.GetNumberOfCards() > 0)
     {
         if (Deck.GetCardDescriptionAt(0) == "Dif")
         {
             Card CurrentCard = Deck.RemoveCard(Deck.GetCardNumberAt(0));
             Console.WriteLine();
             Console.WriteLine("Difficulty encountered!");
             Console.WriteLine(Hand.GetCardDisplay());
             Console.Write("To deal with this you need to either lose a key ");
             Console.Write("(enter 1-5 to specify position of key) or (D)iscard five cards from the deck:> ");
             string Choice = Console.ReadLine();
             Console.WriteLine();
             Discard.AddCard(CurrentCard);
             CurrentCard.Process(Deck, Discard, Hand, Sequence, CurrentLock, Choice, cardChoice);
         }
     }
     while (Hand.GetNumberOfCards() < 5 && Deck.GetNumberOfCards() > 0)
     {
         if (Deck.GetCardDescriptionAt(0) == "Dif")
         {
             MoveCard(Deck, Discard, Deck.GetCardNumberAt(0));
             Console.WriteLine("A difficulty card was discarded from the deck when refilling the hand.");
         }
         else
         {
             MoveCard(Deck, Hand, Deck.GetCardNumberAt(0));
         }
     }
     if (Deck.GetNumberOfCards() == 0 && Hand.GetNumberOfCards() < 5)
     {
         GameOver = true;
     }
 }
Example #2
0
 private bool CheckIfPlayerHasLost()
 {
     if (Deck.GetNumberOfCards() == 0)
     {
         Console.WriteLine("You have run out of cards in your deck.  Your final score is: " + Score);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #3
0
        public override void Process(CardCollection deck, CardCollection discard, CardCollection hand, CardCollection sequence, Lock currentLock, string choice, int cardChoice)
        {
            int ChoiceAsInteger;

            if (int.TryParse(choice, out ChoiceAsInteger))
            {
                if (ChoiceAsInteger >= 1 && ChoiceAsInteger <= 5)
                {
                    if (ChoiceAsInteger >= cardChoice)
                    {
                        ChoiceAsInteger -= 1;
                    }
                    if (ChoiceAsInteger > 0)
                    {
                        ChoiceAsInteger -= 1;
                    }
                    if (hand.GetCardDescriptionAt(ChoiceAsInteger)[0] == 'K')
                    {
                        Card CardToMove = hand.RemoveCard(hand.GetCardNumberAt(ChoiceAsInteger));
                        discard.AddCard(CardToMove);
                        return;
                    }
                }
            }
            int Count = 0;

            while (Count < 5 && deck.GetNumberOfCards() > 0)
            {
                Card CardToMove = deck.RemoveCard(deck.GetCardNumberAt(0));
                discard.AddCard(CardToMove);
                Count += 1;
            }
        }
Example #4
0
 private void ProcessLockSolved()
 {
     Score += 10;
     Console.WriteLine("Lock has been solved.  Your score is now: " + Score);
     while (Discard.GetNumberOfCards() > 0)
     {
         MoveCard(Discard, Deck, Discard.GetCardNumberAt(0));
     }
     Deck.Shuffle();
     CurrentLock = GetRandomLock();
 }
Example #5
0
 private void PlayCardToSequence(int cardChoice)
 {
     if (Sequence.GetNumberOfCards() > 0)
     {
         if (Hand.GetCardDescriptionAt(cardChoice - 1)[0] != Sequence.GetCardDescriptionAt(Sequence.GetNumberOfCards() - 1)[0])
         {
             Score += MoveCard(Hand, Sequence, Hand.GetCardNumberAt(cardChoice - 1));
             GetCardFromDeck(cardChoice);
         }
     }
     else
     {
         Score += MoveCard(Hand, Sequence, Hand.GetCardNumberAt(cardChoice - 1));
         GetCardFromDeck(cardChoice);
     }
     if (CheckIfLockChallengeMet())
     {
         Console.WriteLine();
         Console.WriteLine("A challenge on the lock has been met.");
         Console.WriteLine();
         Score += 5;
     }
 }