public static void putCardsInHandOf(Player player, params int[] cards) { foreach (int c in cards) { Card card = new Card(c); // player.addCard(card); // TODO } }
public static int countTotalOccurencesOfCardsInHand(Player player, params int[] cards) { int total = 0; foreach (int c in cards) { total += countOccurencesOfCardInHand(player, c); } return(total); }
public void shouldNotKeepAnyZeroCardsInHand() { Player player = new Player(); PlayerHelper.putCardsInHandOf(player, 0, 0, 1, 2, 3); Player opponent = new Player(); Card cardToPlay; while ((cardToPlay = strategy.nextCardToPlay(player, opponent)) != null) { PlayerHelper.simulatePlayingCard(player, cardToPlay); } Assert.AreEqual(0, countOccurencesOfCardInHand(player, 0)); }
public void shouldDealAsMuchDamageAsPossiblePerRound() { Player player = new Player(); player.Mana = 6; PlayerHelper.putCardsInHandOf(player, 1, 2, 2, 3, 4); Player opponent = new Player(); opponent.Life = 10; Card cardToPlay; while ((cardToPlay = strategy.nextCardToPlay(player, opponent)) != null) { PlayerHelper.simulatePlayingCard(player, cardToPlay); } Assert.AreEqual(4, opponent.Life); }
public void shouldPlayComboThatMaximizesDamageOverTwoTurns() { Player player = new Player(); player.Mana = 7; PlayerHelper.putCardsInHandOf(player, 1, 2, 3, 4, 6); Player opponent = new Player(); Card cardToPlay; while ((cardToPlay = strategy.nextCardToPlay(player, opponent)) != null) { PlayerHelper.simulatePlayingCard(player, cardToPlay); } Assert.AreEqual(1, countOccurencesOfCardInHand(player, 6)); Assert.AreEqual(1, countOccurencesOfCardInHand(player, 2)); Assert.AreEqual(0, countTotalOccurencesOfCardsInHand(player, 3, 4)); }
public void shouldPreferToPlayMultipleLowCardsOverSingleHighCardToPreventOverload() { Player player = new Player(); player.Mana = 7; PlayerHelper.putCardsInHandOf(player, 1, 2, 4, 7, 6); Player opponent = new Player(); Card cardToPlay; while ((cardToPlay = strategy.nextCardToPlay(player, opponent)) != null) { PlayerHelper.simulatePlayingCard(player, cardToPlay); } Assert.AreEqual(1, countOccurencesOfCardInHand(player, 7)); Assert.AreEqual(1, countOccurencesOfCardInHand(player, 6)); Assert.AreEqual(0, countTotalOccurencesOfCardsInHand(player, 1, 2, 4)); }
public static int countOccurencesOfCardInHand(Player player, int card) { // return Collections.frequency(player.getHand(), new Card(card)); // TODO return(-1); }
public static void simulatePlayingCard(Player player, Card cardToPlay) { player.Mana = player.Mana - cardToPlay.Value; // player.removeCard(card); // TODO }