static Hands getNext(Hands[] hands , int last) { return last == hands.Max(x => x.Position) ? hands.First() : hands.Where(x => x.Position > last).First(); }
static string GetActionPositionRun(Hands[] hands, int position, int run, Enumeration.Street street) { var user = hands.Single(x => x.Position == position).User; string action; switch (street) { case Enumeration.Street.Blind: action = hands.Single(x => x.Position == position).ActionBlind; break; case Enumeration.Street.Preflop: action = hands.Single(x => x.Position == position).ActionPreflop; break; case Enumeration.Street.Flop: action = hands.Single(x => x.Position == position).ActionFlop; break; case Enumeration.Street.Turn: action = hands.Single(x => x.Position == position).ActionTurn; break; case Enumeration.Street.River: action = hands.Single(x => x.Position == position).ActionRiver; break; default: throw new ArgumentException("this street does not exist", street.ToString()); } if (action == string.Empty) return string.Empty; if (action.Split(',').Count() > run) return user + " " + action.Split(',')[run]; return string.Empty; }
static Hands GetFirstPlayer(Hands[] hands, bool preflop) { int positionButton = hands.First().PositionButton; if (preflop) { var sb = getNext(hands, positionButton); var bb = getNext(hands, sb.Position); return getNext(hands, bb.Position); } return getNext(hands, positionButton); }
/// <summary> /// Create a new Hands object. /// </summary> /// <param name="position">Initial value of the Position property.</param> /// <param name="pk">Initial value of the pk property.</param> /// <param name="positionButton">Initial value of the PositionButton property.</param> public static Hands CreateHands(global::System.Int32 position, global::System.Int32 pk, global::System.Int32 positionButton) { Hands hands = new Hands(); hands.Position = position; hands.pk = pk; hands.PositionButton = positionButton; return hands; }
/// <summary> /// Deprecated Method for adding a new object to the Hands EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToHands(Hands hands) { base.AddObject("Hands", hands); }
private static bool ReplayStreet(Hands[] hands, Enumeration.Street street) { Console.WriteLine("-----------"); Console.WriteLine("Action "+street); Console.WriteLine("-----------"); int position = GetFirstPlayer(hands, street == Enumeration.Street.Preflop).Position; int firstPosition = position; int run = 0; string lastactionFromrun = string.Empty; while (true) { string action = GetActionPositionRun(hands, position, run, street); if (action != string.Empty) Console.WriteLine(action); if (action.Contains("collected")) { return false; } position = getNext(hands, position).Position; lastactionFromrun += action; if (position == firstPosition) { if (lastactionFromrun == string.Empty) break; lastactionFromrun = string.Empty; run++; } } return true; }