public void Reset() { Deck.Restore(); Player1.Muck(); Player2.Muck(); TableCards.Clear(); Winner = null; }
public void ClearTable() { foreach (Hand h in players) { h.ClearHand(); } table.Clear(); }
/// <summary> /// 发牌桌的牌 /// </summary> private void DealToTable() { TableCards.Clear(); for (int i = 1; i <= GameConfig.Table_Cards_Count; i++) { var card = PickCardFromPile(); TableCards.Add(i, card); } }
public void InitCardPile() { TableCards.Clear(); // CleanPlayerCards(); if (RemainCards.Count < 52) { _RemainCards = InitNewCards(); } }
public void Start() { Func <Action, bool> conductBettingRoungAndReportIfRoundIsOver = currentRound => { currentRound(); return(Ready.Count(x => x) < 2); }; Action setReadyPlayers = () => { for (int i = 0; i < 10; i++) { Ready[i] = PlayerBySeat.ContainsKey(i); } }; setReadyPlayers(); SetInitialRoles(); while (true) { CheckWinner(); if (Count < 2) { break; } Deck.Shuffle(); TableCards.Clear(); setReadyPlayers(); // Цикл раундов пока есть хотя бы 2 игрока if (conductBettingRoungAndReportIfRoundIsOver(PreFlop)) { continue; } if (conductBettingRoungAndReportIfRoundIsOver(Flop)) { continue; } if (conductBettingRoungAndReportIfRoundIsOver(Turn)) { continue; } if (conductBettingRoungAndReportIfRoundIsOver(River)) { continue; } ShowDown(); Update(); } }
/// <summary> /// Get the winner /// </summary> /// <returns>The player who won</returns> private Player FindWinner() { CardHand.Worth?worth = null; Player winner = null; foreach (Player p in GetActivePlayers) { p.AddCards(TableCards); CardHand.Worth nextWorth = p.GetHandsWorth(); if (null == worth || worth < nextWorth) { worth = nextWorth; winner = p; } } TableCards.Clear(); return(winner); }