Playing cards
define Pip = <A 2 3 4 5 6 7 8 9 10 J Q K>;
define Suit = <♦ ♣ ♥ ♠>;
class Card(pip, suit) {
method to_s { pip + suit }
}
class Deck(cards=[]) {
method init {
cards = gather {
Pip.each { |p| Suit.each { |s| take(Card(p, s)) } }
}
}
method shuffle {
cards.shuffle!;
}
method deal { cards.shift };
method to_s { cards.join(" ") };
}
var d = Deck();
say "Deck: #{d}";
var top = d.deal;
say "Top card: #{top}";
d.shuffle;
say "Deck, shuffled: #{d}";Output:
Last updated
Was this helpful?