16 lines
580 B
Text
16 lines
580 B
Text
Types ← [{"one" "two" "three"}
|
|
{"solid" "open" "striped"}
|
|
{"red" "green" "purple"}
|
|
{"oval" "squiggle" "diamond"}]
|
|
|
|
Hand ← ˜↙⊏⍏⍥⚂⊸⧻≡≡⊡⊙(¤Types)⧅⋅⋅1 4⇡3 # build deck, shuffle, take N
|
|
Sets ← ≡(=1/↧≡(↥⊃=₁=₃⧻⊕⧻⊸⊛)⍉) # each type in a set must be distinct or identical
|
|
|
|
Deal‼ ← (
|
|
⍢(^1◌|^0/+Sets(⧅<3))^1
|
|
⊸(▽⊸Sets(⧅<3))
|
|
)
|
|
&p"9 cards dealt, 4 sets available.\n"
|
|
≡&s⊙&sDeal‼(≠₄|Hand9)
|
|
&p"\n\n12 cards dealt, 6 sets available.\n"
|
|
≡&s⊙&sDeal‼(≠₆|Hand12)
|