void main() {
var deck = new Deck();
// deck.shuffle();
// print(deck);
// print('============');
// print(deck.deal(5));
// print('============');
// print(deck);
deck.removeCard('Diamonds', 'Ace');
// print('===========');
print(deck);
}
class Deck {
List<Card> cards = [];
Deck() {
var ranks = ['Ace', 'Two', 'Three', 'Four', 'Five'];
var suits = ['Diamonds', 'Clubs', 'Spades', 'Hearts'];
for (var mySuit in suits) {
for (var rank in ranks) {
var card = new Card(
suit: mySuit,
rank: rank
);
cards.add(card);
}
}
}
toString() {
return cards.toString();
}
shuffle() {
cards.shuffle();
}
cardsWithSuit(String suit) {
return cards.where((card) => card.suit == suit
);
}
removeCard(String suit, String rank) {
cards.removeWhere((card) =>
card.suit == suit && card.rank == rank
);
}
deal(int handSize){
var hand = cards.sublist(0, handSize);
cards = cards.sublist(handSize);
return hand;
}
}
class Card {
String suit;
String rank;
Card({this.suit, this.rank});
toString() {
return '$rank of $suit';
}
}