static void Main(string[] args) { var container = new UnityContainer(); container.RegisterType <IUserInterface, UserInterface>(); IUserInterface _UserInterface = container.Resolve <IUserInterface>(); container.RegisterType <ICardHand, CardHand>(); ICardHand Deck = container.Resolve <ICardHand>(); container.RegisterType <IGameOfCardsUtilities, GameOfCardsUtilities>(); IGameOfCardsUtilities _GameOfCardsUtilities = container.Resolve <IGameOfCardsUtilities>(); //container.RegisterType<IGameOfSnap, GameOfSnap>(); //IGameOfSnap GameOfSnap = container.Resolve<IGameOfSnap>(); string stop = ""; while (stop.ToLower() != "x") { _UserInterface.Clear(); Deck.PopulateFreshDeck(); Deck.ShuffleCardHand(); var GameOfSnap = new GameOfSnap(_GameOfCardsUtilities, _UserInterface, TotalNumberOfCards); int[] PossibleNumberOfPlayers = GameOfSnap.GetPossibleNumberOfPlayers(TotalNumberOfCards); int NumberOfPlayers = _UserInterface.GetNumberOfPlayers(PossibleNumberOfPlayers); GameOfSnap.DealPlayersTheirCards(Deck, NumberOfPlayers); GameOfSnap.PlayGame(); stop = _UserInterface.ReadLine("enter 'x' to exit, or press enter key to play again."); } }
public List <CardHand> GetSetOfNewlyDealtCardHands(ICardHand ShuffledDeck, int NumberOfPlayers) { var NewPlayers = new List <CardHand>(); for (int i = 0; i < NumberOfPlayers; i++) { NewPlayers.Add(new CardHand(i)); } while (ShuffledDeck.cardHand.Count > 0) { for (int i = 0; i < NumberOfPlayers; i++) { Card card = ShuffledDeck.cardHand[0]; ShuffledDeck.DealCard(); NewPlayers[i].AddCard(card); } } return(NewPlayers); }
public bool GameFinished(List <CardHand> PlayersHands, ICardHand stack) { int TotalNumberOfCards = EnumCardSuit.GetValues(typeof(EnumCardSuit)).Length *EnumCardSuit.GetValues(typeof(EnumCardValue)).Length;; if (stack.cardHand.Count == TotalNumberOfCards) { return(true); } else { foreach (var Player in PlayersHands) { if (Player.cardHand.Count == TotalNumberOfCards) { return(true); } } } return(false); }
public void GiveCardTo(TCard card, ICardHand <TCard> hand) { AssertCard(card); Remove(card); hand.Add(card); }
public void DealPlayersTheirCards(ICardHand ShuffledDeck, int NumberOfPlayers) { Players = _Utilities.GetSetOfNewlyDealtCardHands(ShuffledDeck, NumberOfPlayers); this.Stack = new CardHand(); }