Playing cards: Difference between revisions

m (add link to Delphi for pascal)
Line 1,433:
};
}</lang>
 
=={{header|K}}==
The deck is stored in the global variable "deck".
 
Create the deck.
<lang K> v:"A23456789TJQK" / values
s:"SHCD" / suites
 
/ create a new deck
newdeck:{deck::,/s,'\:v}
newdeck();</lang>
 
Show the deck.
<lang K> show:{`0:$,/-3$$deck}
 
show()
SA S2 S3 S4 S5 S6 S7 S8 S9 ST SJ SQ SK HA H2 H3 H4 H5 H6 H7 H8 H9 HT HJ HQ HK CA C2 C3 C4 C5 C6 C7 C8 C9 CT CJ CQ CK DA D2 D3 D4 D5 D6 D7 D8 D9 DT DJ DQ DK </lang>
 
Shuffle the deck.
<lang K> shuffle:{deck::(-#deck)?deck}
 
shuffle();show()
S8 CA D5 D2 SJ D6 DJ H7 S4 S9 SQ SK S5 D8 C4 HT DA H3 S6 S2 DT HA C2 C5 D9 ST C7 DK S3 HQ D7 DQ C8 D3 SA CJ CQ CT H4 H2 CK H9 H5 C3 C6 H6 D4 HJ C9 S7 HK H8 </lang>
 
Deal: Get the N top cards and remove them from the deck.
Deal 5 cards.
<lang K> deal1:{|((#deck)-x)_|deck}
deal:{c:deal1[x];deck::(deck _dvl c);c}
 
deal[5]
("S8"
"CA"
"D5"
"D2"
"SJ")
 
#deck / 5 cards are removed
47</lang>
 
Deal 3 more hands.
<lang K> {deal@5}'!3
(("D6"
"DJ"
"H7"
"S4"
"S9")
("SQ"
"SK"
"S5"
"D8"
"C4")
("HT"
"DA"
"H3"
"S6"
"S2"))</lang>
 
We now have 32 cards left.
<lang K> #deck
32
show()
DT HA C2 C5 D9 ST C7 DK S3 HQ D7 DQ C8 D3 SA CJ CQ CT H4 H2 CK H9 H5 C3 C6 H6 D4 HJ C9 S7 HK H8</lang>
 
=={{header|Liberty BASIC}}==
495

edits