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 AddDifficultyCardsToDeck() { for (int Count = 1; Count <= 5; Count++) { Deck.AddCard(new DifficultyCard()); } }
private void SetupCardCollectionFromGameFile(string lineFromFile, CardCollection cardCol) { List <string> SplitLine; int CardNumber; if (lineFromFile.Length > 0) { SplitLine = lineFromFile.Split(',').ToList(); foreach (var Item in SplitLine) { if (Item.Length == 5) { CardNumber = Convert.ToInt32(Item[4]); } else { CardNumber = Convert.ToInt32(Item.Substring(4, 2)); } if (Item.Substring(0, 3) == "Dif") { DifficultyCard CurrentCard = new DifficultyCard(CardNumber); cardCol.AddCard(CurrentCard); } else { ToolCard CurrentCard = new ToolCard(Item[0].ToString(), Item[2].ToString(), CardNumber); cardCol.AddCard(CurrentCard); } } } }
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; } }
private int MoveCard(CardCollection fromCollection, CardCollection toCollection, int cardNumber) { int Score = 0; if (fromCollection.GetName() == "HAND" && toCollection.GetName() == "SEQUENCE") { Card CardToMove = fromCollection.RemoveCard(cardNumber); if (CardToMove != null) { toCollection.AddCard(CardToMove); Score = CardToMove.GetScore(); } } else { Card CardToMove = fromCollection.RemoveCard(cardNumber); if (CardToMove != null) { toCollection.AddCard(CardToMove); } } return(Score); }