Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement