示例#1
0
 /// <summary>
 /// Buys the in to game.
 /// </summary>
 /// <param name="game">The game.</param>
 /// <param name="seatNumber">The seat number.</param>
 /// <param name="amount">The amount.</param>
 public void BuyInToGame(Game game, int seatNumber, decimal amount)
 {
     if (game.AddPlayerToGame(this, seatNumber, amount))
     {
         State = new WaitingState();
     }
 }
示例#2
0
        public Dealer(Game game, Deck deck)
        {
            _game = game;
            _deck = deck;

            _game.PlayerAdded += GameOnPlayerAdded;
            _game.PlayerRemoved += GameOnPlayerRemoved;
        }
示例#3
0
        static void Main(string[] args)
        {
            Game game = new Game();
            HandEvaluatorWrapper handEvaluator = new HandEvaluatorWrapper();
            Dealer dealer = new Dealer(game, new Deck());
            PokerPlayer rob = new PokerPlayer("RobA2345");
            PokerPlayer dave = new PokerPlayer("mintaspiss");

            dealer.ShuffleDeck();
            dealer.Deal(rob);
            dealer.Deal(dave);
            dealer.Deal(rob);
            dealer.Deal(dave);

            string robsHand = rob.ShowHand().Aggregate(string.Empty, (current, card) => current + " " + card.ToString("s"));
            string davesHand = dave.ShowHand().Aggregate(string.Empty, (current, card) => current + " " + card.ToString("s"));
            Console.WriteLine(string.Format("{0} holds {1}", rob, robsHand));
            Console.WriteLine(string.Format("{0} holds {1}", dave, davesHand));

            Console.WriteLine("Dealing Flop...");
            dealer.DealFlop(game);

            string boardCards = game.CommunityCards.Aggregate(
                string.Empty, (current, card) => current + " " + card.ToString("s"));

            Console.WriteLine(boardCards);

            Console.WriteLine("Dealing Turn...");
            dealer.DealTurn(game);

            boardCards = game.CommunityCards.Aggregate(
                string.Empty, (current, card) => current + " " + card.ToString("s"));

            Console.WriteLine(boardCards);

            Console.WriteLine("Dealing River...");
            dealer.DealRiver(game);

            boardCards = game.CommunityCards.Aggregate(
                string.Empty, (current, card) => current + " " + card.ToString("s"));

            Console.WriteLine(boardCards);

            string robsHandDescription = handEvaluator.GetHandDescription(rob.ShowHand(), game.CommunityCards);
            string davesHandDescription = handEvaluator.GetHandDescription(dave.ShowHand(), game.CommunityCards);
            uint robsHandValue = handEvaluator.EvaluateHandValue(rob.ShowHand(), game.CommunityCards);
            uint davesHandValue = handEvaluator.EvaluateHandValue(dave.ShowHand(), game.CommunityCards);

            Console.WriteLine(string.Format("{0} shows {1}", dave, davesHandDescription));
            Console.WriteLine(string.Format("{0} shows {1}", rob, robsHandDescription));

            string result;
            if (robsHandValue == davesHandValue)
                result = "Pot is split";
            else
            {
                result = robsHandValue > davesHandValue
                    ? string.Format("{0} wins with {1}", rob, robsHandDescription)
                    : string.Format("{0} wins wth {1}", dave, davesHandDescription);
            }

            Console.WriteLine(result);

            Console.Read();
        }
示例#4
0
 private void DealSingleCardToGame(Game game)
 {
     game.AddCommunityCard(_deck.Pop());
 }
示例#5
0
 public void DealTurn(Game game)
 {
     DealSingleCardToGame(game);
 }
示例#6
0
 public void DealRiver(Game game)
 {
     DealSingleCardToGame(game);
 }
示例#7
0
 public void DealFlop(Game game)
 {
     for (int i = 0; i < 3; i++)
         DealSingleCardToGame(game);
 }
示例#8
0
 public void CollectCards(Game game)
 {
     IEnumerable<Card> returnedCards = game.ReturnCards();
     foreach (Card card in returnedCards)
         _deck.Push(card);
 }