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