斗地主排序

摘自https://www.jianshu.com/p/4c1c2ded4bf2


    NSArray *numArr   = @[@"2",@"A",@"K",@"Q",@"J",@"10",@"9",@"8",@"7",@"6",@"5",@"4",@"3"];

     

    //组合54张牌,先是大小王

    NSMutableArray *allPokerArr = [NSMutableArray arrayWithArray:@[@"大王",@"小王"]];

    for (NSString *numStr in numArr) {//组合不同花色不同数字的牌

        for (NSString *colorStr in colorArr) {

            NSString *newStr = [colorStr stringByAppendingString:numStr];

            [allPokerArr addObject:newStr];

        }

    }

     

    //随机打乱这54张牌

    NSArray *mixArr = [allPokerArr sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

        int seed = arc4random_uniform(2);

        if (seed) {

            return [obj1 compare:obj2];

        } else {

            return [obj2 compare:obj1];

        }

    }];

     

    //随便构造一个范围,取出混合后的54张牌中的这个范围内的17张牌

    NSRange range = NSMakeRange(10, 17);

    NSArray *newArr = [mixArr subarrayWithRange:range];

     

    //排序这17张牌

    NSMutableArray *resultArr = [NSMutableArray arrayWithArray:allPokerArr];

    for (NSString *str in allPokerArr) {

        if (![newArr containsObject:str]) {

            [resultArr removeObject:str];

        }

    }

你可能感兴趣的:(斗地主排序)