Set puzzle: Difference between revisions

→‎{{header|Tailspin}}: Corrected a mistake in the program
(→‎{{header|Tailspin}}: Corrected a mistake in the program)
Line 3,607:
 
=={{header|Tailspin}}==
Dealing cards at random to the size of the desired hand, then trying again if the desired set count is not achieved. Unfortunately Tailspin is still very slow and the 9/4 scenario seems unlikely enough that it isn't happening anytime soon. So demonstrating by generating 9 cards with exactly 3 sets.
<lang tailspin>
def deck: [ 1..3 -> (def colour: $;
Line 3,633:
templates findSets
def hand: $;
[ 1..$hand::length - 32 -> (def a: $;
$a+1..$hand::length - 31 -> (def b: $;
$b+1..$hand::length - 3 -> $hand([$a, $b, $]) !
) !
) -> isSet ] !
Line 3,644:
def nSets: $(2);
{} -> #
<{sets: <[]($nSets..)>}> $ !
<>
def hand: $nCards -> deal;
Line 3,667:
end formatSets
 
[9,34] -> setPuzzle -> formatSets -> !OUT::write
</lang>
{{out}}
<pre>
hand:
green-diamondsquiggle-three-open
purplegreen-squiggleoval-onethree-striped
greenred-diamond-onethree-striped
purplered-squiggleoval-threeone-open
purple-squiggle-twothree-solidstriped
red-oval-threetwo-openstriped
purple-diamond-threeone-opensolid
red-ovalsquiggle-onethree-solid
purple-diamond-two-open
green-oval-three-solid
 
sets:
[ green-diamondsquiggle-three-open purplered-squiggleoval-threeone-open redpurple-ovaldiamond-threetwo-open ]
[ purplegreen-squiggle-onethree-stripedopen purple-squiggle-three-openstriped purplered-squiggle-twothree-solid ]
[ green-diamondsquiggle-onethree-stripedopen purplered-squiggleoval-two-solidstriped redpurple-ovaldiamond-threeone-opensolid ]
[ green-oval-three-striped red-diamond-three-striped purple-squiggle-three-striped ]
</pre>
 
It seemed to be easier (or luckier) to do the twelveTwelve cards with 6six sets
<pre>
[12,6] -> setPuzzle -> formatSets -> !OUT::write
Anonymous user