Write an APL function called Dist that returns the 4 hands of a random Bridge cards distribution.
You should make use of the following global variables:
and you can use the following constants in your code:
The result must be a 4-element nested vector, representing the 4 hands, such as:
DJ S8 CK DX S3 S6 HQ S2 HA C2 D6 C9 SJ D8 D3 C5 CJ DQ C6 S4 C8 H7 D9 H8 H2 CA HK H6 C7 SK SQ S7 D5 CQ HX DK HJ S5 C3 SA H9 D2 D7 H5 C4 D4 H3 SX S9 CX DA H4 |
DJ S8 CK DX S3 S6 HQ S2 HA C2 D6 C9 SJ |
D8 D3 C5 CJ DQ C6 S4 C8 H7 D9 H8 H2 CA |
HK H6 C7 SK SQ S7 D5 CQ HX DK HJ S5 C3 |
SA H9 D2 D7 H5 C4 D4 H3 SX S9 CX DA H4 |
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 |
Each card in the result is represented by the pip character (S,H,D or C) followed by the card letter (A,K,Q,J,X,9,8,7,6,5,4,3 or 2)
One solution is:
[12] r←⊂[2](,pips∘.,crds)[4 13⍴52?52] |
Explanations
SA SK SQ SJ SX S9 S8 S7 S6 S5 S4 S3 S2 |
HA HK HQ HJ HX H9 H8 H7 H6 H5 H4 H3 H2 |
DA DK DQ DJ DX D9 D8 D7 D6 D5 D4 D3 D2 |
CA CK CQ CJ CX C9 C8 C7 C6 C5 C4 C3 C2 |
SA SK SQ SJ SX S9 S8 S7 S6 S5 S4 S3 S2 HA HK HQ HJ HX H9 H8 H7 H6 H5 H4 H3 H2 DA DK DQ DJ DX D9 D8 D7 D6 D5 D4 D3 D2 CA CK CQ CJ CX C9 C8 C7 C6 C5 C4 C3 C2 |
51 34 47 23 25 52 35 26 16 30 42 2 36 27 41 48 31 1 40 32 38 7 24 39 21 44 20 18 11 3 4 50 9 5 33 49 22 12 46 10 8 15 17 14 37 29 13 6 28 19 45 43 |
51 34 47 23 25 52 35 26 16 30 42 2 36 |
27 41 48 31 1 40 32 38 7 24 39 21 44 |
20 18 11 3 4 50 9 5 33 49 22 12 46 |
10 8 15 17 14 37 29 13 6 28 19 45 43 |
(,pips∘.,crds)[4 13⍴52?52] |
C3 D7 C7 H5 H3 C2 D6 H2 HQ DJ CQ SK D5 |
DA CK C6 DX SA CA D9 D3 S8 H4 D2 H7 CX |
H8 HX S4 SQ SJ C4 S6 SX D8 C5 H6 S3 C8 |
S5 S7 HK HJ HA D4 DQ S2 S9 DK H9 C9 CJ |
⊂[2](,pips∘.,crds)[4 13⍴52?52] |
C3 D7 C7 H5 H3 C2 D6 H2 HQ DJ CQ SK D5 DA CK C6 DX SA CA D9 D3 S8 H4 D2 H7 CX H8 HX S4 SQ SJ C4 S6 SX D8 C5 H6 S3 C8 S5 S7 HK HJ HA D4 DQ S2 S9 DK H9 C9 CJ |