斗地主排序

摘自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];

        }

    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容