/// <summary> /// Seats the player. /// </summary> /// <param name="player">The player.</param> /// <param name="buyIn">The buy in.</param> public void SeatPlayer(PokerPlayer player, decimal buyIn) { Player = player; ChipCount = buyIn; }
/// <summary> /// Called when [player added]. /// </summary> /// <param name="player">The player.</param> private void OnPlayerAdded(PokerPlayer player) { PlayerAddedHandler handler = PlayerAdded; if (handler != null) PlayerAdded(this, new PlayerJoinEventArgs(player)); }
/// <summary> /// Called when [player removed]. /// </summary> /// <param name="player">The player.</param> private void OnPlayerRemoved(PokerPlayer player) { PlayerRemovedHandler handler = PlayerRemoved; if (handler != null) PlayerRemoved(this, new PlayerLeaveEventArgs(player)); }
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(); }
/// <summary> /// Adds the player to game. /// </summary> /// <param name="player">The player.</param> /// <param name="seatNumber">The seat number.</param> /// <param name="buyIn">The buy in.</param> /// <returns> /// True if player was added to the seat successfully. /// </returns> public bool AddPlayerToGame(PokerPlayer player, int seatNumber, decimal buyIn) { seatNumber = seatNumber - 1; if (seatNumber < 0 || seatNumber > 8) return false; if (buyIn <= _minmiumBuyIn || buyIn >= _maximumBuyIn) return false; Seat requestedSeat = _playerSeats.Single(seat => seat.SeatNumber == seatNumber); if (!requestedSeat.IsOccupied) { requestedSeat.SeatPlayer(player, buyIn); OnPlayerAdded(player); return true; } return false; }
public void Deal(PokerPlayer player) { player.ReceiveCard(_deck.Pop()); }
public void CollectCards(PokerPlayer player) { IEnumerable<Card> returnedCards = player.ReturnCards(); foreach (Card card in returnedCards) _deck.Push(card); }
public PlayerJoinEventArgs(PokerPlayer player ) { Player = player; }
/// <summary> /// Initializes a new instance of the <see cref="InactiveState"/> class. /// </summary> /// <param name="player">The player.</param> public InactiveState(PokerPlayer player) { Player = player; }
public PlayerLeaveEventArgs(PokerPlayer player) { Player = player; }