32 lines
525 B
Plaintext
32 lines
525 B
Plaintext
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}";
|