public static bool IsFeijidai(RX_CardSet sender)
{
if (NotNull(sender) && EffectiveNumber(sender,8,20))
{
Dictionary<RX_CARD_LEVEL,int> dictionary= new Dictionary<RX_CARD_LEVEL, int> ();
for (int i = 0;i < sender.Lister.Count; i++)
{
RX_Card card = sender.Lister [i];
int count = 0;
if (dictionary.ContainsKey(card.Level))
{
dictionary.TryGetValue(card.Level,out count);
count += 1;
//大于3时,直接失败..
if (count > 3) {
return false;
}
dictionary [card.Level] = count;
}
else
{
dictionary.Add(card.Level,1);
}
}
List<RX_CARD_LEVEL> three_level_list = new List<RX_CARD_LEVEL> ();
List<int> other_level_list = new List<int> ();
foreach (RX_CARD_LEVEL level in dictionary.Keys)
{
int count = 0;
dictionary.TryGetValue (level, out count);
if (count == 3) {
three_level_list.Add (level);
} else {
other_level_list.Add (count);
}
}
if (three_level_list.Count != dictionary.Keys.Count / 2)
{
return false;
}
for (int i = 0; i < other_level_list.Count - 1; i++)
{
if (other_level_list[i] != other_level_list[i + 1]) {
return false;
}
}
for (int i = 0; i < three_level_list.Count - 1; i++)
{
if ((int)three_level_list[i] - (int)three_level_list[i + 1] != -1)
{
return false;
}
}
sender.Typer = RX_CARD_SET.RX_TYPE_FEI_DAI;
sender.Level = three_level_list[0];
return true;
}
return false;
}