Example #1
0
        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);
        }
Example #4
0
 public void GiveCardTo(TCard card, ICardHand <TCard> hand)
 {
     AssertCard(card);
     Remove(card);
     hand.Add(card);
 }
Example #5
0
 public void DealPlayersTheirCards(ICardHand ShuffledDeck, int NumberOfPlayers)
 {
     Players    = _Utilities.GetSetOfNewlyDealtCardHands(ShuffledDeck, NumberOfPlayers);
     this.Stack = new CardHand();
 }