private DeskCardsCache()
 {
     library = new List <Card>();
     cType   = DataType.CharacterType.Desk;
     rule    = DataType.CardsType.None;
 }
Ejemplo n.º 2
0
    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);
    }