jraavis icon

Random Deck Generator - Dart

jraavis | PRO | 09/08/19 06:11:03 AM UTC | 0 ⭐ | 10329 👁️ | Never ⏰ | []
Dart |

1.18 KB

|

None

|

0 👍

/

0 👎

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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎