public void Step() { Game game = _gameRepository.GetContinueableGame(_userId); if (game == null) { throw new InvalidOperationException("Game is not found"); } RoundPlayer user = _roundPlayerRepository.GetLastRoundPlayerInfo(game.Id, _userId); List <Card> roundCards = _cardRepository.GetLastRoundCards(game.Id).ToList(); if (user.State != RoundPlayerState.None) { throw new InvalidOperationException("Player can\'t to step when RoundState != None"); } List <long> shuffledCards = GetShuffledCards(roundCards); var roundPlayerCard = new RoundPlayerCard { RoundPlayerId = user.Id, CardId = shuffledCards[0] }; _roundPlayerCardRepository.Add(roundPlayerCard); if (!IsStepPossible(game)) { Skip(); } }
public int Create(Models.RoundPlayerCard item) { RoundPlayerCard roundPlayerCard = Mapper.ToEntity(item); _context.RoundPlayerCards.Add(roundPlayerCard); _context.SaveChanges(); return(roundPlayerCard.Id); }
public static DAL.Entities.RoundPlayerCard ToEntity(RoundPlayerCard roundPlayerCard) { DAL.Entities.RoundPlayerCard roundPlayerCardOut = new DAL.Entities.RoundPlayerCard { CardId = roundPlayerCard.CardId, RoundPlayerId = roundPlayerCard.RoundPlayerId, NumberCard = roundPlayerCard.NumberCard }; return(roundPlayerCardOut); }
public void Delete(int id) { RoundPlayerCard item = _context.RoundPlayerCards.Find(id); if (item != null) { _context.RoundPlayerCards.Remove(item); _context.SaveChanges(); } }
public static RoundPlayerCard ToModel(DAL.Entities.RoundPlayerCard roundPlayerCard) { RoundPlayerCard roundPlayerCardOut = new RoundPlayerCard { CardId = roundPlayerCard.CardId, RoundPlayerId = roundPlayerCard.RoundPlayerId, NumberCard = roundPlayerCard.NumberCard }; return(roundPlayerCardOut); }
public byte GetRandomCard(int roundPlayerId) { var random = new Random(); byte cardId = (byte)random.Next(1, 52); int numberCard = _roundPlayerCardRepository.GetCountCardsByRoundPlayer(roundPlayerId) + 1; RoundPlayerCard roundPlayerCard = new RoundPlayerCard { CardId = cardId, RoundPlayerId = roundPlayerId, NumberCard = numberCard }; _roundPlayerCardRepository.Create(roundPlayerCard); return(cardId); }
private void CreateCards(List <RoundPlayer> roundPlayers) { var roundPlayerCards = new List <RoundPlayerCard>(); var shuffledCards = GetShuffledCards(); for (int i = 0; i < roundPlayers.Count; i++) { var firstCard = new RoundPlayerCard { RoundPlayerId = roundPlayers[i].Id, CardId = shuffledCards[i] }; var secondCard = new RoundPlayerCard { RoundPlayerId = roundPlayers[i].Id, CardId = shuffledCards[i + roundPlayers.Count] }; roundPlayerCards.AddRange(new[] { firstCard, secondCard }); } _roundPlayerCardRepository.Add(roundPlayerCards); }
private List <RoundPlayerCard> DoPlayBot(RoundPlayer roundPlayer, List <long> shuffledCards) { if (roundPlayer.Player.Type == PlayerType.User) { return(Enumerable.Empty <RoundPlayerCard>().ToList()); } var roundCards = new List <RoundPlayerCard>(); int gotCardsCount = 0; int score = CalculateCardScore(roundPlayer.Cards.Select(roundPlayerCard => roundPlayerCard.Card)); while (score < Constants.DealerStopValue) { Card card = GetCardById(shuffledCards[gotCardsCount]); var roundCard = new RoundPlayerCard { CardId = card.Id, RoundPlayerId = roundPlayer.Id }; gotCardsCount++; roundCards.Add(roundCard); roundPlayer.Cards.Add(roundCard); score = CalculateCardScore(roundPlayer.Cards.Select(roundPlayerCard => GetCardById(roundPlayerCard.CardId))); } return(roundCards); }