コード例 #1
0
 public static void putCardsInHandOf(Player player, params int[] cards)
 {
     foreach (int c in cards)
     {
         Card card = new Card(c);
         // player.addCard(card); // TODO
     }
 }
コード例 #2
0
        public static int countTotalOccurencesOfCardsInHand(Player player, params int[] cards)
        {
            int total = 0;

            foreach (int c in cards)
            {
                total += countOccurencesOfCardInHand(player, c);
            }
            return(total);
        }
コード例 #3
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
 public static int countOccurencesOfCardInHand(Player player, int card)
 {
     // return Collections.frequency(player.getHand(), new Card(card)); // TODO
     return(-1);
 }
コード例 #8
0
 public static void simulatePlayingCard(Player player, Card cardToPlay)
 {
     player.Mana = player.Mana - cardToPlay.Value;
     // player.removeCard(card); // TODO
 }