Esempio n. 1
0
        private IPlayer PlayRound(IPlayer player1, IPlayer player2)
        {
            IPlayer whoWon = null;
            var     card1  = player1.Show();
            var     card2  = player2.Show();

            if (card1 != null && card2 != null)
            {
                Console.Write(card1 + "/" + card2 + "...");
                switch (CardValueCalculator.WhoWon(card1, card2))
                {
                case Winner.Player1:
                    whoWon = player1;
                    Console.Write("Player 1 won (" + player1.Cards().Count + "/" + player2.Cards().Count + ")! ");
                    break;

                case Winner.Player2:
                    whoWon = player2;
                    Console.Write("Player 2 won (" + player1.Cards().Count + "/" + player2.Cards().Count + ")! ");
                    break;

                case Winner.Tie:
                    whoWon = PlayWar(player1, player2);     //play war!
                    Console.Write("Tie! ");
                    break;
                }
                if (whoWon != null)
                {
                    whoWon.WinHand(card1, card2);
                }
            }
            return(whoWon);
        }
 public void ValidFace()
 {
     Assert.Equal(11, CardValueCalculator.GetFor(Face.Jack));
     Assert.Equal(12, CardValueCalculator.GetFor(Face.Queen));
     Assert.Equal(13, CardValueCalculator.GetFor(Face.King));
     Assert.Equal(14, CardValueCalculator.GetFor(Face.Ace));
 }
        public void WhoWonFaceCards(Face card1Face, Face card2Num, Winner winner)
        {
            ICard card1 = new FaceCard(card1Face, Suit.Heart);
            ICard card2 = new FaceCard(card2Num, Suit.Heart);

            Assert.Equal(winner, CardValueCalculator.WhoWon(card1, card2));
        }
Esempio n. 4
0
        public void ValidCardValue()
        {
            var face = Face.Jack;

            sut = new FaceCard(face, Suit.Heart);
            var expected = CardValueCalculator.GetFor(face); //probably should mock

            Assert.Equal(expected, sut.Value());
        }
Esempio n. 5
0
        private IPlayer PlayWar(IPlayer player1, IPlayer player2)
        {
            IPlayer whoWon = null;
            var     card1a = player1.Show();
            var     card1b = player1.Show();
            var     card1c = player1.Show();
            var     card1d = player1.Show();
            var     card2a = player2.Show();
            var     card2b = player2.Show();
            var     card2c = player2.Show();
            var     card2d = player2.Show();

            if (card1d != null && card2d != null)
            {
                Console.Write(card1a + "/" + card2a + " | ");
                Console.Write(card1b + "/" + card2b + " | ");
                Console.Write(card1c + "/" + card2c + " | ");
                Console.Write(card1d + "/" + card2d + "...");
                switch (CardValueCalculator.WhoWon(card1d, card2d))
                {
                case Winner.Player1:
                    whoWon = player1;
                    Console.Write("Player 1 won (" + player1.Cards().Count + "/" + player2.Cards().Count + ")! ");
                    break;

                case Winner.Player2:
                    whoWon = player2;
                    Console.Write("Player 2 won (" + player1.Cards().Count + "/" + player2.Cards().Count + ")! ");
                    break;

                case Winner.Tie:
                    whoWon = PlayRound(player1, player2);     //play another round...recursive
                    Console.Write("Tie! ");
                    break;
                }
                if (whoWon != null)
                {
                    whoWon.WinWar(card1a, card1b, card1c, card1d, card2a, card2b, card2c, card2d);
                }
            }
            return(whoWon);
        }
Esempio n. 6
0
 public override int Value()
 {
     return(CardValueCalculator.GetFor(_face));
 }