void main() {
var deck = new Deck();
deck.shuffle();
print(deck.deal(50));
print(deck);
deck.removeCard('Ace', 'Spades');
print(deck);
}
class Deck {
List<Card> cards = [];
Deck() {
List<String> suits = ['Diamonds', 'Hearts', 'Clubs', 'Spades'];
List<String> ranks = ['Ace', 'Two', 'Three', 'Four', 'Five', 'Six'];
for (var suit in suits) {
for (var rank in ranks) {
var card = new Card(suit, rank);
cards.add(card);
}
}
}
shuffle() {
cards.shuffle();
}
cardsWithSuit(String suit) {
return cards.where((card) => card.suit == suit);
}
deal(int handSize) {
if(handSize<=cards.length) {
List<Card> hand = cards.sublist(0, handSize);
cards = cards.sublist(handSize);
return hand;
} else {
return 'Invalid Hand Size';
}
}
removeCard(String rank, String suit) {
cards.removeWhere((card) => card.suit==suit && card.rank == rank);
return cards;
}
toString() {
return cards.toString();
}
}
class Card {
String suit, rank;
Card(this.suit, this.rank);
toString() {
return '$rank of $suit';
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎