Mind boggling card trick: Difference between revisions
Content added Content deleted
(made numerous tidying-up changes, used the word pile instead of pile and stack, clarified what a "red" and "black" pile is (just a name, not the contents), and other small changes. See Paddy3118's talk section for more info.) |
m (→{{header|zkl}}: letters instead of numbers) |
||
Line 980: | Line 980: | ||
blkStk,redStk := stacks; |
blkStk,redStk := stacks; |
||
foreach card in (cards){ stacks[card].append(__cardWalker.next()) } |
foreach card in (cards){ stacks[card].append(__cardWalker.next()) } |
||
println("Stacks:\n Black stack: ",blkStk,"\n Red stack: ",redStk); |
println("Stacks:\n Black stack: ",redBlack(blkStk),"\n Red stack: ",redBlack(redStk)); |
||
numSwaps:=(1).random(1000); // do lots of swaps |
numSwaps:=(1).random(1000); // do lots of swaps |
||
do(numSwaps){ blkStk.append(redStk.pop(0)); redStk.append(blkStk.pop(0)); } |
do(numSwaps){ blkStk.append(redStk.pop(0)); redStk.append(blkStk.pop(0)); } |
||
println("Post %d swaps:\n Black stack: %s\n Red stack: %s" |
println("Post %d swaps:\n Black stack: %s\n Red stack: %s" |
||
.fmt(numSwaps,blkStk,redStk)); |
.fmt(numSwaps,redBlack(blkStk),redBlack(redStk))); |
||
numBlack,numRed := blkStk.filter('==(0)).len(), redStk. |
numBlack,numRed := blkStk.filter('==(0)).len(), redStk.sum(0); |
||
if(numBlack==numRed) |
if(numBlack==numRed) |
||
println("Agreed, black stack has same number of black cards |
println("Agreed, black stack has same number of black cards\n " |
||
"as red stack has number of red cards: ",numRed); |
"as red stack has number of red cards: ",numRed); |
||
else println("Boo, different stack lenghts"); |
else println("Boo, different stack lenghts"); |
||
fcn redBlack(cards){ cards.pump(String,fcn(c){ c and "R " or "B " }) }</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Stacks: |
Stacks: |
||
Black stack: |
Black stack: B B R R R R R R R R R B B B R B |
||
Red stack: |
Red stack: B B R R B B R R R R |
||
Post |
Post 360 swaps: |
||
Black stack: |
Black stack: R R R R B B R R R R R R R R R B |
||
Red stack: |
Red stack: B B R B B B R R B B |
||
Agreed, black stack has same number of black cards |
Agreed, black stack has same number of black cards |
||
as red stack has number of red cards: |
as red stack has number of red cards: 3 |
||
</pre> |
</pre> |