某公司给的面试题,自己小试牛刀
/**
* 设置数据*/
- (void)loadPokerData
{
NSArray *colorList = @[@"♦️", @"♣️", @"❤️", @"♠️"];//@[@"方块", @"梅花", @"红桃", @"黑桃"];
self.cardList = [NSMutableArray arrayWithCapacity:52];
for (int i = 0; i < 4; i++)
{
for (int k = 1; k <= 13; k++)
{
NSString *str = @"";
switch (k) {
case 1:
str = @"A";
break;
case 11:
str = @"J";
break;
case 12:
str = @"Q";
break;
case 13:
str = @"K";
break;
default:
str = [NSString stringWithFormat:@"%@", @(k)];
break;
}
NSString *card = [NSString stringWithFormat:@"%@%@", colorList[i], str];
[self.cardList addObject:card];
}
}
[self printPoker:@"洗牌前"];
}
/**
* 洗牌
*/
- (void)washPoker
{
//打乱牌
for (int i = 0; i < self.cardList.count; i++)
{
//随机从牌中得到一张牌[0,52)
NSInteger index = arc4random() % self.cardList.count;
//交换这两个位置的牌
[self.cardList exchangeObjectAtIndex:i withObjectAtIndex:index];
}
[self printPoker:@"打乱牌"];
//切牌,前半副牌插入后半副牌
for (int i = 0; i < self.cardList.count/2; i++)
{
//得到第一张牌
NSString *card = [self.cardList firstObject];
//插入相应位置
[self.cardList insertObject:card atIndex:self.cardList.count/2 + i];
//去掉第一张牌
[self.cardList removeObjectAtIndex:0];
}
[self printPoker:@"切牌后"];
}
/**
* 发牌
*/
- (void)dealPoker
{
NSString *print = @"";
for (int i = 0; i < 4; i++)
{
NSString *str = @"";
NSInteger index = i;
for (int k = 0; k < 13; k++)
{
str = [NSString stringWithFormat:@"%@%@", str, self.cardList[index]];
index += 4;
}
str = [NSString stringWithFormat:@"第%@个人:%@", @(i+1), str];
print = [NSString stringWithFormat:@"%@\n%@\n", print, str];
}
self.textView.text = [NSString stringWithFormat:@"%@\n\n%@", self.textView.text, print];
}
/**
* 打印输出
*/
- (void)printPoker:(NSString*)key
{
NSString *print = @"";
for (NSString *card in self.cardList)
{
print = [NSString stringWithFormat:@"%@ %@", print, card];
}
self.textView.text = [NSString stringWithFormat:@"%@\n\n%@:\n%@", self.textView.text, key, print];
}