Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Playing-cards/CoffeeScript/playing-cards.coffee
Normal file
25
Task/Playing-cards/CoffeeScript/playing-cards.coffee
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#translated from JavaScript example
|
||||
class Card
|
||||
constructor: (@pip, @suit) ->
|
||||
|
||||
toString: => "#{@pip}#{@suit}"
|
||||
|
||||
class Deck
|
||||
pips = '2 3 4 5 6 7 8 9 10 J Q K A'.split ' '
|
||||
suits = '♣ ♥ ♠ ♦'.split ' '
|
||||
|
||||
constructor: (@cards) ->
|
||||
if not @cards?
|
||||
@cards = []
|
||||
for suit in suits
|
||||
for pip in pips
|
||||
@cards.push new Card(pip, suit)
|
||||
|
||||
toString: => "[#{@cards.join(', ')}]"
|
||||
|
||||
shuffle: =>
|
||||
for card, i in @cards
|
||||
randomCard = parseInt @cards.length * Math.random()
|
||||
@cards[i] = @cards.splice(randomCard, 1, card)[0]
|
||||
|
||||
deal: -> @cards.shift()
|
||||
Loading…
Add table
Add a link
Reference in a new issue