Playing cards: Difference between revisions
added Arturo
Cyril Nocton (talk | contribs) (→APL) |
Drkameleon (talk | contribs) (added Arturo) |
||
Line 377:
7H 3D 2H 9D KS 7C JH TC JS ..
</pre>
=={{header|Arturo}}==
<syntaxhighlight lang="arturo">ranks: 1..13
suits: [`♣`, `♦`, `♥`, `♠`]
define :card [rank, suit][
init: [
ensure ->
and? -> contains? ranks this\rank
-> contains? suits this\suit
]
print: [
R: ø
case [this\rank=]
when? [1] -> R: `A`
when? [11]-> R: `J`
when? [12]-> R: `Q`
when? [13]-> R: `K`
else -> R: this\rank
~{|R||this\suit|}
]
]
define :deck [][
init: [
this\cards: []
loop ranks 'rank ->
loop suits 'suit ->
this\cards: this\cards ++ to :card @[rank, suit]
]
]
shuffleUp: function [this :deck][
this\cards: shuffle this\cards
]
deal: function [this :deck, cnt :integer][
if cnt > size this\cards ->
panic "Not enough cards in deck"
cards: []
do.times: cnt [
dealt: sample this\cards
'cards ++ dealt
this\cards: remove this\cards dealt
]
return cards
]
; create a new deck
Deck: to :deck []
; and shuffle it
shuffleUp Deck
; deal 5 cards
print deal Deck 5</syntaxhighlight>
{{out}}
<pre>A♥ 6♣ 7♣ Q♦ K♥</pre>
=={{header|ATS}}==
|