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); }
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); }
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); }
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); }
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); }