-
Notifications
You must be signed in to change notification settings - Fork 0
/
Deck.m
54 lines (37 loc) · 907 Bytes
/
Deck.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//
// Deck.m
// Assignment1
//
// Created by Victor, Jason M on 2/4/14.
// Copyright (c) 2014 Victor, Jason M. All rights reserved.
//
#import "Deck.h"
@interface Deck()
@property (strong, nonatomic) NSMutableArray *cards; // of Card
@end
@implementation Deck
- (NSMutableArray *) cards {
if (!_cards) _cards = [[NSMutableArray alloc] init];
return _cards;
}
- (void) addCard:(Card *)card atTop:(BOOL) atTop {
if (atTop) {
[self.cards insertObject:card atIndex:0];
}
else {
[self.cards addObject:card];
}
}
- (void) addCard:(Card *)card {
[self addCard:card atTop:NO];
}
- (Card *) drawRandomCard {
Card * randomCard = nil;
if ([self.cards count]) {
unsigned index = arc4random() % [self.cards count];
randomCard = self.cards[index];
[self.cards removeObjectAtIndex:index];
}
return randomCard;
}
@end