Playing cards: Difference between revisions
Content added Content deleted
(Added zkl) |
|||
Line 3,891: | Line 3,891: | ||
Reg_ins(9) // insert the cards here |
Reg_ins(9) // insert the cards here |
||
Return</lang> |
Return</lang> |
||
=={{header|zkl}}== |
|||
<lang zkl>const Diamonds=1, Spades=3, Clubs=0, Hearts=2, Ace=1; |
|||
var suits=T(0x1F0D1,0x1F0C1,0x1F0B1,0x1F0A1); //unicode 🃑,🃁,🂱,🂡 |
|||
class Card{ |
|||
fcn init(pip,suit){ // or 0..51 |
|||
reg p,s; |
|||
if(vm.numArgs==1){ s=pip/13; p=pip%13; } else { p=pip; s=suit } |
|||
var [const] _pip=p, _suit=s; |
|||
} |
|||
fcn toString{ |
|||
p:=_pip + (_pip>=11); |
|||
(suits[_suit]+p):Compiler.Tokenizer.intToUTF8(_); |
|||
} |
|||
} |
|||
class Deck{ //--> 52 shuffled Cards |
|||
var [const] deck=L(); |
|||
fcn init{ |
|||
(0).pump(52,deck.clear().write,Card); |
|||
shuffle(); |
|||
} |
|||
fcn shuffle{ deck.shuffle() } |
|||
fcn deal(cards=5){ deck.pop(0,cards); } |
|||
fcn toString{ deck.pump(String,"toString"); } |
|||
}</lang> |
|||
<lang zkl>d:=Deck(); |
|||
d.println(d.deck.len()); |
|||
d.deal().println(); |
|||
d.println();</lang> |
|||
{{out}} |
|||
<pre> |
|||
🃎🂱🃗🂢🂸🃄🂷🂤🃉🂡🂽🂥🂶🃃🃇🂳🂫🃍🃅🂭🃚🃞🃋🃘🂹🃛🂩🂺🃁🂮🂣🃖🂨🃙🃝🃒🂪🃂🃊🂲🃈🂧🃑🃆🂵🂴🃔🂾🂦🃓🂻🃕52 |
|||
L(🃎,🂱,🃗,🂢,🂸) |
|||
🃄🂷🂤🃉🂡🂽🂥🂶🃃🃇🂳🂫🃍🃅🂭🃚🃞🃋🃘🂹🃛🂩🂺🃁🂮🂣🃖🂨🃙🃝🃒🂪🃂🃊🂲🃈🂧🃑🃆🂵🂴🃔🂾🂦🃓🂻🃕 |
|||
</pre> |