public SuitTieredGridStatus(GridCategoryEnum category) { Category = category; SuitedStatus = new SuitedStatus <T>(); PairedStatus = new PairedStatus <T>(); OffsuitStatus = new OffsuitStatus <T>(); }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append($"RankWiseStatus={RankWiseStatus},"); switch (Category) { case GridCategoryEnum.Suited: sb.Append( $"SuitedStatus={SuitedStatus.ToString()}"); break; case GridCategoryEnum.Offsuit: sb.Append( $"OffsuitStatus={OffsuitStatus.ToString()}"); break; case GridCategoryEnum.Paired: sb.Append($"PairedStatus={PairedStatus.ToString()}"); break; default: throw new InvalidOperationException(); } return(sb.ToString()); }
public void SetSuitUnlessForSuitedGrid(SuitEnum suit, T set, Func <T, bool> unless) { if (Category != GridCategoryEnum.Suited) { throw new InvalidOperationException(); } SuitedStatus.SetSuitUnless(suit, set, unless); }
public SuitedStatus <T> Clone() { var cloned = new SuitedStatus <T>(); cloned.HeartStatus = HeartStatus; cloned.SpadeStatus = SpadeStatus; cloned.DiamondStatus = DiamondStatus; cloned.ClubStatus = ClubStatus; return(cloned); }
public int GetCount(Func <T, bool> func) { switch (Category) { case GridCategoryEnum.Suited: return(SuitedStatus.Count(func)); case GridCategoryEnum.Paired: return(PairedStatus.Count(func)); case GridCategoryEnum.Offsuit: return(OffsuitStatus.Count(func)); default: throw new InvalidOperationException(); } }
public void SetAllUnless(T set, Func <T, bool> unless) { switch (Category) { case GridCategoryEnum.Suited: SuitedStatus.SetAllUnless(set, unless); break; case GridCategoryEnum.Offsuit: OffsuitStatus.SetAllUnless(set, unless); break; case GridCategoryEnum.Paired: PairedStatus.SetAllUnless(set, unless); break; } }
public GridStatusInPlayerRange Clone() { var cloned = new GridStatusInPlayerRange(Category); cloned.RankWiseStatus = this.RankWiseStatus; switch (Category) { case GridCategoryEnum.Suited: cloned.SuitedStatus = SuitedStatus.Clone(); break; case GridCategoryEnum.Paired: cloned.PairedStatus = PairedStatus.Clone(); break; case GridCategoryEnum.Offsuit: cloned.OffsuitStatus = OffsuitStatus.Clone(); break; } return(cloned); }