Playing cards: Difference between revisions
Content added Content deleted
No edit summary |
Walterpachl (talk | contribs) (Added Rexx) |
||
Line 2,309: | Line 2,309: | ||
# While no-one is looking, sneakily deal a card from the bottom of the pack |
# While no-one is looking, sneakily deal a card from the bottom of the pack |
||
deck <- deal(deck, FALSE)</lang> |
deck <- deal(deck, FALSE)</lang> |
||
=={{header|Rexx}}== |
|||
<lang rexx>/* REXX *************************************************************** |
|||
* 1) Build ordered Card deck |
|||
* 2) Create shuffled stack |
|||
* 3) Deal 5 cards to 4 players each |
|||
* 4) show what cards have been dealt and what's left on the stack |
|||
* 05.07.2012 Walter Pachl |
|||
**********************************************************************/ |
|||
colors='S H C D' |
|||
ranks ='A 2 3 4 5 6 7 8 9 T J Q K' |
|||
i=0 |
|||
cards='' |
|||
ss='' |
|||
Do c=1 To 4 |
|||
Do r=1 To 13 |
|||
i=i+1 |
|||
card.i=word(colors,c)word(ranks,r) |
|||
cards=cards card.i |
|||
End |
|||
End |
|||
n=52 /* number of cards on deck */ |
|||
Do si=1 To 51 /* pick 51 cards */ |
|||
x=random(0,n-1)+1 /* take card x (in 1...n) */ |
|||
s.si=card.x /* card on shuffled stack */ |
|||
ss=ss s.si /* string of shuffled stack */ |
|||
card.x=card.n /* replace card taken */ |
|||
n=n-1 /* decrement nr of cards */ |
|||
End |
|||
s.52=card.1 /* pick the last card left */ |
|||
ss=ss s.52 /* add it to the string */ |
|||
Say 'Ordered deck:' |
|||
Say ' 'subword(cards,1,26) |
|||
Say ' 'subword(cards,27,52) |
|||
Say 'Shuffled stack:' |
|||
Say ' 'subword(ss,1,26) |
|||
Say ' 'subword(ss,27,52) |
|||
si=52 |
|||
deck.='' |
|||
Do ci=1 To 5 /* 5 cards each */ |
|||
Do pli=1 To 4 /* 4 players */ |
|||
deck.pli.ci=s.si /* take top of shuffled deck */ |
|||
si=si-1 /* decrement number */ |
|||
deck.pli=deck.pli deck.pli.ci /* pli's cards as string */ |
|||
End |
|||
End |
|||
Do pli=1 To 4 /* show the 4 dealt ... */ |
|||
Say pli':' deck.pli |
|||
End |
|||
Say 'Left on shuffled stack:' |
|||
Say ' 'subword(ss,1,26) /* and what's left on stack */ |
|||
Say ' 'subword(ss,27,6)</lang> |
|||
Output: |
|||
<pre> |
|||
Ordered deck: |
|||
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 |
|||
Shuffled stack: |
|||
DJ D7 C6 DA HJ CJ D8 SA D2 DK C5 HA H9 SK ST DQ C3 SQ D5 CQ D3 S7 C9 HT CA CK |
|||
S5 H3 S4 H5 S2 C2 HQ H2 S6 H6 H7 H8 S3 D4 D6 D9 HK CT C8 DT S8 SJ C7 C4 H4 S9 |
|||
1: S9 SJ CT D4 H6 |
|||
2: H4 S8 HK S3 S6 |
|||
3: C4 DT D9 H8 H2 |
|||
4: C7 C8 D6 H7 HQ |
|||
Left on shuffled stack: |
|||
DJ D7 C6 DA HJ CJ D8 SA D2 DK C5 HA H9 SK ST DQ C3 SQ D5 CQ D3 S7 C9 HT CA CK |
|||
S5 H3 S4 H5 S2 C2 |
|||
</pre> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |