static public IInitCards GetInst(GameCommon.PeopleNum num) { log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "call GetInst"); switch (num) { case GameCommon.PeopleNum.TwoPeople: return(new TwoInitCards()); case GameCommon.PeopleNum.ThreePeople: return(new ThreeInitCards()); case GameCommon.PeopleNum.FourPeople: return(new FourInitCards()); default: return(null); } }
static private HupaiState SubstitutePerCard(List <Int64> arr, Int64 lai, GameCommon.PeopleNum num) { HupaiState flag = HupaiState.no_hu; List <Int64> temp1 = new List <Int64>(arr); temp1.Remove(lai); int circular_num; if (num == GameCommon.PeopleNum.FourPeople) { circular_num = (int)GameCommon.mjCards.T_9; } else { circular_num = (int)GameCommon.mjCards.B_9; } for (int j = 1; j <= circular_num; j++) { if (j % 10 != 0) { temp1.Add(j); temp1.Sort(); for (int i = arr.Count - 1; i > 0;) { List <Int64> temp = new List <Int64>(temp1); if (temp1[i] == temp1[i - 1]) { temp.RemoveAt(i); temp.RemoveAt(i - 1); i -= 2; if (checkHupaiTwo(temp)) { if (j == lai) { flag = HupaiState.hard_hu; log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "五"); return(flag); } else { flag = HupaiState.soft_hu; log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "六"); return(flag); } } temp.Reverse(); if (checkHupaiTwo(temp)) { if (j == lai) { flag = HupaiState.hard_hu; log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "七"); return(flag); } else { flag = HupaiState.soft_hu; log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "八"); return(flag); } } } else { i--; } } temp1.Remove(j); } } return(flag); }