Esempio n. 1
0
        public void AddDevelopmentCard(DevelopmentCardTypes developmentCardType)
        {
            DevelopmentCard developmentCard = null;

            switch (developmentCardType)
            {
            case DevelopmentCardTypes.Knight: developmentCard = new KnightDevelopmentCard(); break;

            case DevelopmentCardTypes.Monopoly: developmentCard = new MonopolyDevelopmentCard(); break;

            case DevelopmentCardTypes.RoadBuilding: developmentCard = new RoadBuildingDevelopmentCard(); break;

            case DevelopmentCardTypes.YearOfPlenty: developmentCard = new YearOfPlentyDevelopmentCard(); break;

            default: throw new NotImplementedException($"Development card type {developmentCardType} not recognised");
            }

            this.developmentCards.Enqueue(developmentCard);
        }
Esempio n. 2
0
        private void Initialise(IIndexSequence random)
        {
            this.cards = new Queue <DevelopmentCard>();

            var victoryPointCardTitles = new Queue <string>(new[] { "Chapel", "Great Hall", "Library", "Market", "University" });

            var index = -1;

            while (random.TryGetNextIndex(out index))
            {
                if (index < KnightCardCount)
                {
                    var card = new KnightDevelopmentCard();
                    this.cards.Enqueue(card);
                }
                else if (index < (KnightCardCount + MonopolyCardCount))
                {
                    var card = new MonopolyDevelopmentCard();
                    this.cards.Enqueue(card);
                }
                else if (index < (KnightCardCount + MonopolyCardCount + RoadBuildingCardCount))
                {
                    var card = new RoadBuildingDevelopmentCard();
                    this.cards.Enqueue(card);
                }
                else if (index < (KnightCardCount + MonopolyCardCount + RoadBuildingCardCount + YearOfPlentyCardCount))
                {
                    var card = new YearOfPlentyDevelopmentCard();
                    this.cards.Enqueue(card);
                }
                else if (index < (KnightCardCount + MonopolyCardCount + RoadBuildingCardCount + YearOfPlentyCardCount + VictoryPointCardCount))
                {
                    var title = victoryPointCardTitles.Dequeue();
                    var card  = new VictoryPointDevelopmentCard(title);
                    this.cards.Enqueue(card);
                }
            }
        }