Playing cards: Difference between revisions
Content added Content deleted
(Go solution) |
|||
Line 478: | Line 478: | ||
} |
} |
||
}</lang> |
}</lang> |
||
From the Python version: |
|||
<lang d>import std.random, std.conv, std.stdio; |
|||
class Card { |
|||
enum suits = ["Clubs", "Hearts", "Spades", "Diamonds"]; |
|||
enum pips = ["2", "3", "4", "5", "6", "7", "8", "9", "10", |
|||
"Jack", "Queen", "King", "Ace"]; |
|||
string pip, suit; |
|||
this(string pip, string suit) { |
|||
this.pip = pip; |
|||
this.suit = suit; |
|||
} |
|||
override string toString() { |
|||
return this.pip ~ " of " ~ this.suit; |
|||
} |
|||
} |
|||
class Deck { |
|||
Card[] deck; |
|||
this() { |
|||
foreach (suit; Card.suits) |
|||
foreach (pip; Card.pips) |
|||
this.deck ~= new Card(pip, suit); |
|||
} |
|||
override string toString() { |
|||
return text(this.deck); |
|||
} |
|||
void shuffle() { |
|||
randomShuffle(this.deck); |
|||
} |
|||
Card deal() { |
|||
this.shuffle(); |
|||
Card c = this.deck[$-1]; |
|||
this.deck.length -= 1; |
|||
return c; |
|||
} |
|||
} |
|||
void main() {}</lang> |
|||
=={{header|E}}== |
=={{header|E}}== |