Exemplo n.º 1
0
        private List <PlayerRoundHand> CreatePlayerRoundHands(List <ViewModels.RequestModel.PlayerNewRoundGameViewItem> playersList, long roundId)
        {
            List <PlayerRoundHand> result = new List <PlayerRoundHand>();

            for (int i = 0; i < playersList.Count(); i++)
            {
                var playerRoundHand = new PlayerRoundHand();
                playerRoundHand.PlayerId = playersList[i].Id;
                playerRoundHand.RoundId  = roundId;
                result.Add(playerRoundHand);
            }
            return(result);
        }
Exemplo n.º 2
0
        private List <PlayerRoundHand> CreatePlayerRoundHands(List <Player> playersList, long roundId)
        {
            List <PlayerRoundHand> result = new List <PlayerRoundHand>();

            for (int i = 0; i < playersList.Count(); i++)
            {
                var playerRoundHand = new PlayerRoundHand();
                playerRoundHand.PlayerId = playersList[i].Id;
                playerRoundHand.RoundId  = roundId;
                result.Add(playerRoundHand);
            }
            return(result);
        }
Exemplo n.º 3
0
        public async Task <ResponseFindWinnerGameView> FindWinner(RequestFindWinnerGameView item)
        {
            int    score  = 21;
            Player player = await _playerRepository.Get(item.PlayerHand.PlayerId);

            Player dealer = await _playerRepository.Get(item.DealerHand.PlayerId);

            PlayerRoundHand playerHand = await _playerRoundHandRepository.Get(item.PlayerHand.Id);

            PlayerRoundHand dealerHand = await _playerRoundHandRepository.Get(item.DealerHand.Id);

            Round round = await _roundRepository.Get(playerHand.RoundId);

            if (playerHand.Score > score && dealerHand.Score <= score)
            {
                round.Winner      = dealer.Name;
                round.WinnerScore = dealerHand.Score;
            }
            if (dealerHand.Score <= score && dealerHand.Score > playerHand.Score)
            {
                round.Winner      = dealer.Name;
                round.WinnerScore = dealerHand.Score;
            }
            if (dealerHand.Score > score && playerHand.Score > score)
            {
                round.Winner      = "Draw";
                round.WinnerScore = 0;
            }
            if (dealerHand.Score == playerHand.Score)
            {
                round.Winner      = "Draw";
                round.WinnerScore = 0;
            }
            if (dealerHand.Score > score && playerHand.Score <= score)
            {
                round.Winner      = player.Name;
                round.WinnerScore = playerHand.Score;
            }
            if (playerHand.Score <= score && playerHand.Score > dealerHand.Score)
            {
                round.Winner      = player.Name;
                round.WinnerScore = playerHand.Score;
            }
            await _roundRepository.Update(round);

            var result = new ResponseFindWinnerGameView();

            result.Round = _maping.MapRoundToRoundFindWinnerGameViewItem(round);
            return(result);
        }
Exemplo n.º 4
0
        public async Task <ResponseBotLogicGameView> BotLogic(RequestBotLogicGameView model)
        {
            List <Card> cards = await _cardRepository.GetAll();

            Random          random          = new Random((int)DateTime.Now.Ticks);
            PlayerRoundHand playerRoundHand = await _playerRoundHandRepository.GetPlayerRoundHandByPlayerAndRoundId(model.Hand.PlayerId, model.Round.Id);

            while (playerRoundHand.Score < 17)
            {
                Stack <Card> mixCards = new Stack <Card>(cards.OrderBy(x => random.Next()));
                Card         card     = GetCard(mixCards);
                playerRoundHand.Score += (int)card.Value;
                await SaveHands(card, playerRoundHand.Id);
            }
            await _playerRoundHandRepository.Update(playerRoundHand);

            var result = new ResponseBotLogicGameView();

            result.Hand = _maping.MapPlayerRoundHandToPlayerRoundHandBotLogicGameViewItem(playerRoundHand, await _cardRepository.GetPlayerRoundHandCards(playerRoundHand.Id));
            return(result);
        }
Exemplo n.º 5
0
        public async Task <ResponseGetCardGameView> GetCard(RequestGetCardGameView model)
        {
            var result = new ResponseGetCardGameView();

            if (!(await HandValidation(model.Hand.PlayerId)))
            {
                throw new WrongDataException("Your Data is incorrect");
            }

            Random          random          = new Random((int)DateTime.Now.Ticks);
            Stack <Card>    mixCards        = new Stack <Card>(CardGenerator().OrderBy(x => random.Next()));
            PlayerRoundHand playerRoundHand = await _playerRoundHandRepository.GetPlayerRoundHandByPlayerAndRoundId(model.Hand.PlayerId, model.Round.Id);

            Card card = GetCard(mixCards);

            playerRoundHand.Score += (int)card.Value;
            await SaveHands(card, playerRoundHand.Id);

            await _playerRoundHandRepository.Update(playerRoundHand);

            result.Hand = _maping.MapPlayerRoundHandToPlayerRoundHandGetCardGameViewItem(playerRoundHand, await _cardRepository.GetPlayerRoundHandCards(playerRoundHand.Id));
            return(result);
        }
        public PlayerRoundHandGameProcessGameViewItem MapRoundHandToPlayerRoundHandGameProcessGameViewItem(PlayerRoundHand playerRoundhands)
        {
            var result = new PlayerRoundHandGameProcessGameViewItem();

            result.Id       = playerRoundhands.Id;
            result.PlayerId = playerRoundhands.PlayerId;
            result.RoundId  = playerRoundhands.RoundId;
            return(result);
        }
        public PlayerRoundHandBotLogicGameViewItem MapPlayerRoundHandToPlayerRoundHandBotLogicGameViewItem(PlayerRoundHand hand, List <Card> cards)
        {
            var result = new PlayerRoundHandBotLogicGameViewItem();

            result.Id       = hand.Id;
            result.Score    = hand.Score;
            result.PlayerId = hand.PlayerId;
            result.Hand     = MapCardToCardBotLogicGameViewItem(cards);
            return(result);
        }
        public PlayerRoundHandNewRoundGameViewItem MapRoundHandToPlayerRoundHandNewRoundGameViewItem(PlayerRoundHand playerRoundHand)
        {
            var result = new PlayerRoundHandNewRoundGameViewItem();

            result.Id       = playerRoundHand.Id;
            result.PlayerId = playerRoundHand.PlayerId;
            result.RoundId  = (int)playerRoundHand.RoundId;
            return(result);
        }
        public PlayerNewRoundGameViewItem MapPlayerToPlayerNewRoundGameViewItem(ViewModels.RequestModel.PlayerNewRoundGameViewItem player, PlayerRoundHand playerRoundHand)
        {
            var result = new PlayerNewRoundGameViewItem();

            result.Id              = player.Id;
            result.Name            = player.Name;
            result.Role            = (int)player.Role;
            result.PlayerRoundHand = MapRoundHandToPlayerRoundHandNewRoundGameViewItem(playerRoundHand);
            return(result);
        }