1. If we change the sequence of data passing the value also going to change so use named args to pass the data
void main() {
var deck = new Deck();
print(deck);
// print('');
// print(deck.deal(5));
// print('');
// print(deck);
// deck.removeCards('ACE', 'DIAMONDS');
print('');
print(deck);
}
class Deck {
List<Card> cards = [];
Deck() {
var ranks = ['ACE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
var suits = ['DIAMONDS', 'HEARTS', 'CLUBS', 'SPADES'];
for (var rank in ranks) {
for (var suit in suits) {
// print("rank: $rank & suit: $suit");
var card = new Card(
rank = rank,
suit = suit
);
cards.add(card);
}
}
}
toString() {
return cards.toString();
}
shuffle(){
cards.shuffle();
}
cardsWithSuits(String suit){
return cards.where((card) => card.suit == suit );
}
deal(int handSize){
var hand = cards.sublist(0, handSize);
cards = cards.sublist(handSize);
return hand;
}
removeCards({String rank, String suit}){
cards.removeWhere((card) => card.rank == rank && card.suit == suit );
}
}
class Card{
String rank;
String suit;
Card(this.suit, this.rank);
toString(){
return "$rank of $suit";
}
}
No comments:
Post a Comment