예제 #1
0
파일: Deck.cs 프로젝트: rdeetz/QUnoEngine
        /// <summary>
        /// Initializes a new instance of the <see cref="Deck"/> class.
        /// </summary>
        /// <param name="deckProvider">
        /// An implementation of <see cref="IDeckProvider"/> that creates the cards for the deck.
        /// </param>
        public Deck(IDeckProvider deckProvider)
        {
            if (deckProvider == null)
            {
                throw new ArgumentNullException("deckProvider");
            }

            this.drawPile    = new Stack <Card>();
            this.discardPile = new Stack <Card>();

            foreach (var card in deckProvider.ProvideCards())
            {
                this.drawPile.Push(card);
            }
        }
예제 #2
0
        public GameLogicService(IGameRepository gameRepository, IPlayerRepository playerRepository,
                                ICardRepository cardRepository, IPlayerGameRepository playerGameRepository,
                                IRoundRepository roundRepository, IHandRepository handRepository, IHandCardRepository handCardRepository,
                                IMapper mapper, IGameUtility gameUtility, IDeckProvider deckProvider)
        {
            _gameRepository       = gameRepository;
            _playerRepository     = playerRepository;
            _playerGameRepository = playerGameRepository;
            _roundRepository      = roundRepository;
            _handRepository       = handRepository;
            _cardRepository       = cardRepository;
            _handCardRepository   = handCardRepository;

            _mapper = mapper;

            _gameUtility  = gameUtility;
            _deckProvider = deckProvider;
        }