Playing cards: Difference between revisions

Content added Content deleted
m (Better use 'rand' instead of 'seed')
m (J: eliminate some complexities)
Line 664: Line 664:
Ranks=: > ;:'Ace Two Three Four Five Six Seven Eight Nine Ten Jack Queen King'
Ranks=: > ;:'Ace Two Three Four Five Six Seven Eight Nine Ten Jack Queen King'
Suits=: > ;:'Spades Hearts Diamonds Clubs'
Suits=: > ;:'Spades Hearts Diamonds Clubs'
DeckPrototype=: |. ,/(i.#Ranks),."1 0 i.#Suits
DeckPrototype=: (] #: i.@:*/)Ranks ,&# Suits


NB. Class methods
NB. Class methods
Line 673: Line 673:
destroy=: codestroy
destroy=: codestroy


sayCards=: ((Ranks{~{.),' of ',(Suits{~{:))"1
sayCards=: ({&Ranks@{., ' of ', {&Suits@{.)"1


shuffle=: monad define
shuffle=: monad define
1: TheDeck=: TheDeck {~ ?~ # TheDeck
1: TheDeck=: ({~ ?~@#) TheDeck
)
)


Line 688: Line 688:
CardsOffTop=. ToBeDealt {. TheDeck
CardsOffTop=. ToBeDealt {. TheDeck
TheDeck =: ToBeDealt }. TheDeck
TheDeck =: ToBeDealt }. TheDeck
(1 0 2)|:(y,x)$ CardsOffTop
(x,y)$ CardsOffTop
)
)