Skip to content

Instantly share code, notes, and snippets.

@JettScythe
Created February 17, 2022 00:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JettScythe/bdb0d3ae26396f3552b5e32b1ef3ff37 to your computer and use it in GitHub Desktop.
Save JettScythe/bdb0d3ae26396f3552b5e32b1ef3ff37 to your computer and use it in GitHub Desktop.
void main() {
var deck = Deck();
print(deck);
deck.removeCard('Diamonds', 'Ace');
print(deck);
deck.shuffle();
print(deck.deal(5));
print(deck);
}
class Card {
String suit;
String value;
Card(this.value, this.suit);
@override
toString() {
return '$value of $suit';
}
}
class Deck {
List<Card> cards = [];
Deck() {
var values = ['Ace', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King'];
var suits = ['Diamonds', 'Hearts', 'Clubs', 'Spades'];
for (var suit in suits) {
for (var value in values) {
var card = Card(value, suit);
cards.add(card);
}
}
}
@override
toString() {
return cards.toString();
}
shuffle() {
cards.shuffle();
}
cardsWithSuit(String suit) {
return cards.where((card) => card.suit == suit);
}
deal(int numOfCards) {
var hand = cards.sublist(0, numOfCards);
cards = cards.sublist(numOfCards);
return hand;
}
removeCard(String suit, String value) {
cards.removeWhere((card) => (card.suit == suit) && (card.value == value));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment