Jump to content

Mind boggling card trick: Difference between revisions

m (→‎{{header|Python}}: added zkl header)
Line 89:
 
=={{header|zkl}}==
<lang zkl>cards:=[1..52].pump(List,"isEven","toInt").shuffle(); // red==1
<lang zkl></lang>
stacks:=T(List(),List()); // black stack (0), red stack (1)
<lang zkl></lang>
blkStk,redStk := stacks;
foreach card in (cards){ stacks[card].append(__cardWalker.next()) }
println("Stacks:\n Black stack: ",blkStk,"\n Red stack: ",redStk);
 
numSwaps:=(1).random(1000); // do lots of swaps
do(numSwaps){ blkStk.append(redStk.pop(0)); redStk.append(blkStk.pop(0)); }
println("Post %d swaps:\n Black stack: %s\n Red stack: %s"
.fmt(numSwaps,blkStk,redStk));
 
numBlack,numRed := blkStk.filter('==(0)).len(), redStk.filter().len();
if(numBlack==numRed)
println("Agreed, black stack has same number of black cards \n "
"as red stack has number of red cards: ",numRed);
else println("Boo, differnt stack lenghts");</lang>
{{out}}
<pre>
Stacks:
Black stack: L(0,0,1,1,0,0,1,0,0,0,0)
Red stack: L(0,1,0,1,0,1,1,1,0,1,0,0,1,1,0)
Post 99 swaps:
Black stack: L(0,0,1,1,0,0,0,1,1,0,0)
Red stack: L(1,0,0,0,0,0,1,0,1,0,1,1,1,0,1)
Agreed, black stack has same number of black cards
as red stack has number of red cards: 7
</pre>
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.