-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpractice.dart
More file actions
69 lines (52 loc) · 1.2 KB
/
Copy pathpractice.dart
File metadata and controls
69 lines (52 loc) · 1.2 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
void main() {
var deck = new Deck();
// deck.shuffle();
// print(deck);
// print(deck.deal(5));
// print(deck);
deck.removeCard('Five', 'Spades');
print(deck);
}
class Deck {
List<Card> cards = [];
Deck() {
var ranks = ['Ace', 'Two', 'Three', 'Four', 'Five'];
var suits = ['Diamonds', 'Hearts', 'Clubs', 'Spades'];
// Create a deck
for (var suit in suits) {
for (var rank in ranks) {
var card = new Card(rank, suit);
cards.add(card);
}
}
}
// Convert to string
toString() {
return cards.toString();
}
// Shuffling a list
shuffle() {
cards.shuffle();
}
cardsWithSuit(String suit){
cards.where((card) => card.suit == suit);
}
// Sublists and setting type within parameters
deal(int handSize) {
var hand = cards.sublist(0, handSize);
cards = cards.sublist(handSize);
return hand;
}
// Instead of having multiple return statements...
removeCard(String rank, String suit) {
cards.removeWhere((card) => card.rank == rank && card.suit == suit);
}
}
class Card {
String rank;
String suit;
toString() {
return '${rank} of ${suit}';
}
Card(this.rank, this.suit);
}