public IHttpActionResult GetPlayableGames(int players) { CardGameService cardGameService = CreateCardGameService(); var cardGame = cardGameService.GetGamesWithInNumberOfPlayers(players); return(Ok(cardGame)); }
public IHttpActionResult Get(int id) { CardGameService cardGameService = CreateCardGameService(); var cardGame = cardGameService.GetCardGameById(id); return(Ok(cardGame)); }
public IHttpActionResult GetGamble(bool gamble) { CardGameService cardGameService = CreateCardGameService(); var cardGame = cardGameService.GetGameIfGambling(gamble); return(Ok(cardGame)); }
public IHttpActionResult Get() { CardGameService cardGameService = CreateCardGameService(); var cardGames = cardGameService.GetCardGame(); return(Ok(cardGames)); }
public void ValidateNewDeck() { var cardGameService = new CardGameService(_gameRules); var allCards = cardGameService.InitializeDeck(); Assert.Contains(allCards, item => item >= 1 && item <= _gameRules.DeckSize / 4); Assert.Equal(_gameRules.DeckSize, allCards.Count()); }
public void NewDeckIsShuffled() { var dackManager = new CardGameService(_gameRules); var ordered = new Stack <int>(dackManager.InitializeDeck()); var shuffled = dackManager.InitializeDeck().GetShuffledStack(); Assert.Contains(shuffled, item => item >= 1 && item <= _gameRules.DeckSize / 4); Assert.Equal(_gameRules.DeckSize, shuffled.Count()); Assert.NotEqual(ordered, shuffled); }
public void DeckSizePersistedThroughTheGame() { var cardGameService = new CardGameService(_gameRules); while (!cardGameService.GameEnded) { cardGameService.DrawCard(); cardGameService.CalculateDrawOutcome(); Assert.Equal(_gameRules.DeckSize, cardGameService.Players.Sum(p => p.Total)); } }
public void CheckNewPlayersDeckSizes() { var cardGameService = new CardGameService(_gameRules); var deck = cardGameService.InitializeDeck().GetShuffledStack(); cardGameService.InitializePlayerDecks(deck); var expected = _gameRules.DeckSize / _gameRules.NumberOfPlayers; cardGameService.Players.ForEach(player => { Assert.Equal(expected, player.Deck.Count()); }); }
static void Main(string[] args) { try { var gameRuleService = new GameRuleService(); var gameRules = gameRuleService.InitializeRules(args); var cardGameService = new CardGameService(gameRules); cardGameService.StartGame(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void FirstPlayerHasEmptyDeck() { var expected = new int[] { 1, 2, 3, 4, 5 }; var cardGameService = new CardGameService(_gameRules); cardGameService.Players[0].Deck = new Stack <int>(); cardGameService.Players[1].Deck = new Stack <int>(new int[] { 8, 9, 10 }); cardGameService.Players[0].Discard = new List <int>(expected); cardGameService.Players[1].Discard = new List <int>(new int[] { 6, 7 }); cardGameService.CheckPlayersDecks(); Assert.Equal(new Stack <int>(expected), cardGameService.Players[0].Deck.OrderByDescending(x => x)); }
public void SecondPlayerWinTheGame() { var cardGameService = new CardGameService(_gameRules); cardGameService.Players[0].Deck = new Stack <int>(new int[] { 1, 2, 3, 4, 5, 6 }); cardGameService.Players[1].Deck = new Stack <int>(new int[] { 1, 2, 10, 4, 5, 6 }); while (!cardGameService.GameEnded) { cardGameService.DrawCard(); cardGameService.CalculateDrawOutcome(); } Assert.Equal(cardGameService.Players[1], cardGameService.Winner); }
public void FirstPlayerWin2Cards() { var cardGameService = new CardGameService(_gameRules); cardGameService.Players[0].Deck = new Stack <int>(new int[] { 1, 2, 3, 4, 10 }); cardGameService.Players[1].Deck = new Stack <int>(new int[] { 1, 2, 3, 4, 5 }); cardGameService.DrawCard(); cardGameService.CalculateDrawOutcome(); var expected = new List <int> { 5, 10 }; Assert.Equal(expected, cardGameService.Players[0].Discard.OrderBy(x => x)); }
public void FirstPlayerWin6Cards() { var cardGameService = new CardGameService(_gameRules); cardGameService.Players[0].Deck = new Stack <int>(new int[] { 1, 2, 3, 9, 5, 6 }); cardGameService.Players[1].Deck = new Stack <int>(new int[] { 1, 2, 3, 4, 5, 6 }); for (int i = 0; i < 3; i++) { cardGameService.DrawCard(); cardGameService.CalculateDrawOutcome(); } var expected = new List <int> { 4, 5, 5, 6, 6, 9 }; Assert.Equal(expected, cardGameService.Players[0].Discard.OrderBy(x => x)); }
private CardGameService CreateCardGameService() { var cardGameService = new CardGameService(); return(cardGameService); }