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)); }
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()); }
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); }
public override int Value() { return(CardValueCalculator.GetFor(_face)); }