private DeskCardsCache() { library = new List <Card>(); cType = DataType.CharacterType.Desk; rule = DataType.CardsType.None; }
public static bool PopEnable(Card[] cards, out DataType.CardsType type) { type = DataType.CardsType.None; bool isRule = false; switch (cards.Length) { case 1: isRule = true; type = DataType.CardsType.Single; break; case 2: if (IsDouble(cards)) { isRule = true; type = DataType.CardsType.Double; } else if (IsJokerBoom(cards)) { isRule = true; type = DataType.CardsType.JokerBoom; } break; case 3: if (IsOnlyThree(cards)) { isRule = true; type = DataType.CardsType.OnlyThree; } break; case 4: if (IsBoom(cards)) { isRule = true; type = DataType.CardsType.Boom; } else if (IsThreeAndOne(cards)) { isRule = true; type = DataType.CardsType.ThreeAndOne; } break; case 5: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } else if (IsThreeAndTwo(cards)) { isRule = true; type = DataType.CardsType.ThreeAndTwo; } break; case 6: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } else if (IsTripleStraight(cards)) { isRule = true; type = DataType.CardsType.TripleStraight; } else if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } break; case 7: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } break; case 8: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } else if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } break; case 9: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } else if (IsOnlyThree(cards)) //something wrong { isRule = true; type = DataType.CardsType.OnlyThree; } break; case 10: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } else if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } break; case 11: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } break; case 12: if (IsStraight(cards)) { isRule = true; type = DataType.CardsType.Straight; } else if (IsOnlyThree(cards)) { isRule = true; type = DataType.CardsType.OnlyThree; } else if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.OnlyThree; } break; case 13: break; case 14: if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } break; case 15: if (IsOnlyThree(cards)) { isRule = true; type = DataType.CardsType.OnlyThree; } break; case 16: if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } break; case 17: break; case 18: if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } else if (IsOnlyThree(cards)) { isRule = true; type = DataType.CardsType.OnlyThree; } break; case 19: break; case 20: if (IsDoubleStraight(cards)) { isRule = true; type = DataType.CardsType.DoubleStraight; } break; default: break; } return(isRule); }