private async Task <IEnumerable <ShowGameViewItem> > CreatePlayersInGame(Game game) { var turns = await _turnRepository.GetAllTurns(game.Id); List <long> playersId = turns.Select(p => p.PlayerId).Distinct().ToList(); List <ShowGameViewItem> playersInGame = new List <ShowGameViewItem>(); List <Player> players = await _playerRepository.SearchPlayersWithIds(playersId); if (players == null) { throw new Exception("Player not found"); } foreach (var player in players) { ShowGameViewItem playerInGame = new ShowGameViewItem(); playerInGame.PlayerId = player.Id; playerInGame.PlayerName = player.Name; playerInGame.GameId = game.Id; playerInGame.Cards = GetPlayerCards(player.Id, turns); playerInGame.PlayerType = player.PlayerType; playersInGame.Add(playerInGame); } return(playersInGame); }
private int CountPoint(ShowGameViewItem player) { CardHelper cardHelper = new CardHelper(); player.Points = player.Cards.Sum(card => cardHelper.GetCardPoint(card)); return(player.Points); }
private ShowGameViewItem GetPlayerInGameView(Player player, long gameId) { ShowGameViewItem playerInGameView = new ShowGameViewItem(); playerInGameView.PlayerId = player.Id; playerInGameView.GameId = gameId; playerInGameView.PlayerName = player.Name; playerInGameView.PlayerType = PlayerType.User; return(playerInGameView); }
private Turn DoTurn(ShowGameViewItem player, DeckHelper deck) { CardView card = deck.GiveCard(); Turn turn = new Turn(); turn.GameId = player.GameId; turn.PlayerId = player.PlayerId; turn.CardLear = card.CardLear; turn.CardNumber = card.CardNumber; player.Cards.Add(card); return(turn); }
private bool IsDealerLose(ShowGameViewItem player) { return(player.PlayerType == PlayerType.Dealer && player.PlayerStatus == PlayerStatus.Lose); }
private bool IsPlayerLose(ShowGameViewItem player) { return(player.PlayerType == PlayerType.User && player.PlayerStatus != PlayerStatus.Play); }
private bool IsEndGame(ShowGameViewItem player) { return(IsPlayerLose(player) || IsDealerLose(player)); }