示例#1
0
        private void Move(List <Player> players, Game game, List <Move> moves)
        {
            var deckOfCard = new List <Card>();

            var dealDeck = new DealCardsHelper();

            dealDeck.GetAllCards(ref deckOfCard);

            int moveIterator = moves.Where(p => p.PlayerId == players.SingleOrDefault(x => x.PlayerRole == PlayerRole.Player)?.Id).Count();

            if (moveIterator > 0)
            {
                DeleteUsedCardsFromDeck(deckOfCard, moves);
            }

            var random = new Random();

            foreach (var user in players)
            {
                int  cardToUser = random.Next(0, deckOfCard.Count);
                Card cardToAdd  = deckOfCard[cardToUser];
                moves.Add(new Move
                {
                    CardId     = cardToAdd.Id,
                    CardName   = cardToAdd.Name,
                    MoveNumber = moveIterator + 1,
                    GameId     = game.Id,
                    PlayerId   = user.Id,
                    CardPoints = cardToAdd.CardPoints
                });
                deckOfCard.Remove(cardToAdd);
            }
        }
示例#2
0
        private async Task MoveForOnePlayer(Player player, List <Move> moves, Guid gameId)
        {
            var deckOfCard = new List <Card>();

            var dealDeck = new DealCardsHelper();

            dealDeck.GetAllCards(ref deckOfCard);

            DeleteUsedCardsFromDeck(deckOfCard, moves);

            Card cardToAdd = dealDeck.GetCard(deckOfCard);

            int moveIterator = moves.Where(p => p.PlayerId == player.Id).Count();
            var move         = new Move
            {
                CardId     = cardToAdd.Id,
                GameId     = gameId,
                CardName   = cardToAdd.Name,
                CardPoints = cardToAdd.CardPoints,
                PlayerId   = player.Id,
                MoveNumber = moveIterator + 1
            };
            await _moveRepository.Add(move);
        }