示例#1
0
        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);
        }
示例#2
0
        private int CountPoint(ShowGameViewItem player)
        {
            CardHelper cardHelper = new CardHelper();

            player.Points = player.Cards.Sum(card => cardHelper.GetCardPoint(card));

            return(player.Points);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
 private bool IsDealerLose(ShowGameViewItem player)
 {
     return(player.PlayerType == PlayerType.Dealer && player.PlayerStatus == PlayerStatus.Lose);
 }
示例#6
0
 private bool IsPlayerLose(ShowGameViewItem player)
 {
     return(player.PlayerType == PlayerType.User && player.PlayerStatus != PlayerStatus.Play);
 }
示例#7
0
 private bool IsEndGame(ShowGameViewItem player)
 {
     return(IsPlayerLose(player) || IsDealerLose(player));
 }