The Magic Café
Username:
Password:
[ Lost Password ]
  [ Forgot Username ]
The Magic Cafe Forum Index » » Shuffled not Stirred » » Memorized Stack Trainer (Free) (2 Likes) Printer Friendly Version

 Go to page 1~2~3 [Next]
huruey
View Profile
Loyal user
York, UK
205 Posts

Profile of huruey
Hey guys,

This evening, for a bit of fun and also to help me learn the Mnemonica stack, I built a web-based memorized stack trainer which you are all welcome to make use off, too.

Find it here:
http://huruey.webs.com

If you have any comments or suggestions, please let me know. I already have a few ideas for improvements which I may include in a later version.


Joe
Joe Williamson
Chair of the University of York Magic Society
Free Memorized Stack Trainer: http://huruey.webs.com
Scott Cram
View Profile
Inner circle
2657 Posts

Profile of Scott Cram
It's great!

It would probably be good to find a way to hide the stack list in some way. Having the ability to try and determine the card before and after in the stack would be nice, too.

It's pretty good as is, though, so I've added it to my Memorized Deck Online Toolbox.
Waterloophai
View Profile
Special user
Belgium
973 Posts

Profile of Waterloophai
Congratulations. Very handy trainer.
Scott Cram already mentioned it: Having the ability to try and determine the card before and after in the stack would be nice.
It would be handy too if you could "save" the stack somehow, so that if the visitor returns to the site, he has not to fill in his stack again. (cookie?)
Waterloophai
View Profile
Special user
Belgium
973 Posts

Profile of Waterloophai
A button to "pause" would be useful.
Eventualy a button "reset" to start again if one would do that in the middle of a training.
vinsmagic
View Profile
Eternal Order
sleeping with the fishes...
10382 Posts

Profile of vinsmagic
Teriffic I added your site to my favorites
vinny
Come check out my magic.

http://www.vinnymarini.com
Lawrence O
View Profile
Inner circle
Greenwich (CT)
6804 Posts

Profile of Lawrence O
Making the rank number flashing would probably be an improvement in helping memorization.

You could make a sort of Wiki extension so that it can be opened on the upper right cornner of the screen as we do something else on the computer like on the net or using MS Words or Excel.

Great site though for it is not restricted to one specific stack and can be used for mirror stacks as well.

Thanks for sharing
Magic is the art of proving impossible things in parallel dimensions that can't be reached
Waterloophai
View Profile
Special user
Belgium
973 Posts

Profile of Waterloophai
Quote:
On 2010-02-28 06:39, Lawrence O wrote:
Great site though for it is not restricted to one specific stack

Indeed! It's ideal for users who made their own stack.
huruey
View Profile
Loyal user
York, UK
205 Posts

Profile of huruey
Thanks guys.

I've just uploaded a few changes:
- New stack presets menu, to which I have added Si Stebbins and new deck order
- Clicking load now resets the count instantly
- You may now test yourself by guessing the position of a given card

I intend to make the position flash as well, though I need to make a few more changes to do that. I also like the idea of guessing the next/previous card. I'll have a go at that at some point.

Joe
Joe Williamson
Chair of the University of York Magic Society
Free Memorized Stack Trainer: http://huruey.webs.com
Mike Powers
View Profile
Inner circle
Midwest
2436 Posts

Profile of Mike Powers
Hi Joe,

Here's the Aronson stack if you'd like to add it. It's likely the most used stack in the USA.

JS, KC, 5C, 2H, 9S, AS, 3H, 6C, 8D, AC, 10S, 5H, 2D, KD,
7D, 8C, 3S, AD, 7S, 5S, QD, AH, 8S, 3D, 7H, QH, 5D, 7C,
4H, KH, 4D, 10D, JC, JH, 10C, JD, 4S, 10H, 6H, 3C, 2S, 9H, KS, 6S, 4C, 8H, 9C, QS, 6D, QC, 2C, 9D

Mike
Lawrence O
View Profile
Inner circle
Greenwich (CT)
6804 Posts

Profile of Lawrence O
Huruey,

The drawback of the Si-Stebbins had always been the repeated alternation of the suites. There is however an "Advanced Si Stebbins" stacking which solves this issue. When the card is an even card jump one step in the CHaSeD order (thus, for example, after an even Hearts, you'd get a Diamond). When the card is odd just go to the next suite in the CHaSeD order (thus, for example, after an odd Hearts, you'd get a Spade).
This produces the following stack which looks totally random but is easy to trace and remember. One of the beauty of the Si-Stebbins is that given a number, is easy enough to calculate the identity of a card after several shuffles and given a card, it's easy enough to tell its position. This is the principle behind Juan Tamariz's Total Coincidence (the only effect to match the impact of Out Of This World).
AC, 4H, 7D, 10C, KS, 3D, 6C, 9S, QD, 2H, 5D, 8C, JS, AD,
4C, 7S, 10D, KH, 3S, 6D, 9H, QS, 2C, 5S, 8D, JH, AS, 4D, 7H, 10S,
KC, 3H, 6S, 9C, QH, QH, 2D, 5H, 8S, JC, AH, 4S, 7C, 10H, KD, 3C, 6H, 9D, QC, 2S, 5C, 8H, JC

Now I'm a fan of Palyndromic or Mirror stacks. Following this second principle, the Si-Stebbins is followed all the way up to one half of the deck and is then done in reverse order for the second half. The mirror stack offers a lot of advantages for getting at a card or different effects.
The Palyndromic or Mirror Si-Stebbins stack (the "Si-Stebbins Pro" Stack) uses the same Suite system as the Advanced Si-Stebbins
AC, 4H, 7D, 10C, KS, 3D, 6C, 9S, QD, 2H, 5D, 8C, JS, AD, 4C, 7S, 10D, KH, 3S,
6D, 9H, QS, 2C, 5S, 8D, JH, JC, 8S, 5H, 2D, QH, 9C, 6S, 3H, KC, 10S, 7H, 4D,
AS, JC, 8H, 5C, 2S, QC, 9D, 6H, 3C, KD, 10H, 7C, 4S, AH

I've formatted them so that you can copy/paste them in your software
Magic is the art of proving impossible things in parallel dimensions that can't be reached
kentfgunn
View Profile
Inner circle
Merritt Island FL
1577 Posts

Profile of kentfgunn
Joe,

The Joyal Stack guys might appreciate this as a choice.

JH,6S,6H,4S,10D,AD,7S,4H,9S,5D,QH,AH,KC,7H,10C,4C,JS,
9H,KD,5C,7C,2S,QC,AH,10C,6C,9C,7D,QD,10H,KH,4D,3S,3H,
10D,9D,QS,3C,3D,2H,8S,2C,QC,2D,8H,8C,KS,AS,JD,5S,8D,6D

There are some variations on suit sequence. One of my pals has this sequence but a different suit order. Joyal kind of leaves one that choice.

I must say Scott Cram's site is a plethora of sources, information and all things stack. No disrespect Joe, but the best thing about this thread, for me, was finding Scott's website!

KG
Bill Hallahan
View Profile
Inner circle
New Hampshire
3193 Posts

Profile of Bill Hallahan
Huruey, that's great. Thanks!
Humans make life so interesting. Do you know that in a universe so full of wonders, they have managed to create boredom. Quite astonishing.
- The character of ‘Death’ in the movie "Hogswatch"
Mike Powers
View Profile
Inner circle
Midwest
2436 Posts

Profile of Mike Powers
Thanks for updating with the new stacks!

Mike
Lawrence O
View Profile
Inner circle
Greenwich (CT)
6804 Posts

Profile of Lawrence O
Huruey,
Your tool is definitely interesting

Kent,
Thanks for mentioning Scott Cram's site which I didn't know about
http://members.cox.net/astonishment/questions.html

I only knew of Scott's publications in http://www.lybrary.com/scott-cram-m-187.html
Magic is the art of proving impossible things in parallel dimensions that can't be reached
Mike Powers
View Profile
Inner circle
Midwest
2436 Posts

Profile of Mike Powers
Hi Joe,

The trainer is great! Many thanks for sharing.

Here's a suggestion: When doing a random run-through of the stack which seems like the best training, I think your progam makes each instance random. This means that if you run 52 items you may get the same one more than once and you may not get certain cards/numbers. In fact it's likely that certain cards would not show up for a long time just by chance.

An alternate that's easy is to randomize the array that contains the 52 cards. I'm sure you know this technique but if not here's a simple way:

Loop from 1 to 52 and switch array element I with a random element. In other words element 1 switches with a randon element. Then element 2 switches with a random element. Do this from 1 to 52 and the array will be randomized. Then, after the 52nd item has appeared, re-randomize the array. Now every run of 52 cards will contain one and only one of each of the stack elements in a random order.

This similates what people do with a deck i.e. put numbers on the backs of the cards and then shuffle. One run through will force you to try each item in the stack once.

The randomization routine only has about 6 instructions. It would be something like this:

for i:=1 to 52 do
{
dummy := array(i);
num:=rnd(1..52);
array(i):=array(num);
array(num):=dummy;
}
I don't know Java but it would be something like this.

Another cool feature would be to allow the user to input a group of card names and their stack numbers. The program would then only use these cards in the practice session. This way a user could work on a specific group of cards.

In no way are these comments a criticism. The programs is great as is. These are just a couple of suggestions for features that might make it even better.

Thanks for sharing!

Mike
huruey
View Profile
Loyal user
York, UK
205 Posts

Profile of huruey
Good point, Mike. I was planning on recording the previous card to prevent getting the same card twice when on random, but a proper shuffle would indeed be better. I'll implement the standard shuffle, but I also have an idea for another mode which will allow you to enter the value you think is correct. For a single session (or potentially over multiple sessions using cookies) it will record which you get right and which you get wrong the most. It will then make the cards that you get wrong most often appear most often.

Additional changes that I'm planning on making in the next week or so are a details button for the preset stacks which provides additional information, credits and links to resources.

I would also like to add a way of generating and transforming stacks, doing things such as mirroring and cutting. I will also add a reverse order.

Another feature which I think might be cool would be a progressive training sequence which begins with a rabnge of one card, upon showing that card, it increases the range by one, goes through those cards, increases the range by 1 again and so on.

Saving by using cookies would also be nice, though it is unreliable.

Thanks again for your interest and suggestions. Smile


Joe
Joe Williamson
Chair of the University of York Magic Society
Free Memorized Stack Trainer: http://huruey.webs.com
CardWiz
View Profile
Special user
Charleston, SC
621 Posts

Profile of CardWiz
Nice idea Mike, but here is a more efficient way (IMO) of doing the randomization (in Java):

//assuming Card objects have been instantiated and the array used is deckArray[]

Random rand=new Random(); //creates Random generator rand

for(int x=0; x<10000;x++) //set the 2nd constant to a really high number
{
int rand1=rand.nextInt(52);
int rand2=rand.nextInt(52);
Card temp=deckArray[rand1];

deckArray[rand1]=deckArray[rand2];
deckArray[rand2]=temp;
}


This way the deck will really be shuffled (10,000 swaps).

But, anyway, Joe seems like he knows what he is doing.

CW
People have been calling me "Yu" lately. I don't know, must be Chinese.
huruey
View Profile
Loyal user
York, UK
205 Posts

Profile of huruey
Hi CardWiz. As you seem interested, I thought I'd explain why the more common shuffling algorithm as suggested by Mike is superior to swapping cards at random positions a large number of times. Firstly, the second algorithm produces no more random a result than the sequential swapping algorithm. In the first algorithm, every card in the deck is swapped to a random position at least once, meaning that regardless of the input order, all the permutations of the output are equally likely, which is as random as you can get. The algorithm you suggested, however, is in fact LESS random, as by only swapping random elements, regardless of the number of iterations, there is still a chance of some elements not being swapped at all. In terms of efficiency of the function, the first algorithm is also much faster, requiring only 52 iterations rather than say 10000.

I hope this makes sense. Smile

Joe
Joe Williamson
Chair of the University of York Magic Society
Free Memorized Stack Trainer: http://huruey.webs.com
Tom G
View Profile
Inner circle
2338 Posts

Profile of Tom G
Thanks for offering that, maybe just maybe......
Steven Leung
View Profile
Inner circle
searching for the Magic Rainbow in
1385 Posts

Profile of Steven Leung
Thanks Joe, appreciate that effort.
Most memorable moment in my life - Photo with Maestro in FISM Asia 2011.

"Being fooled by a trick doesn't always mean they are having a good time" - Homer Liwag
Hong Kong made a page in FISM history in 2015, 2nd runner up in Parlour (Henry Harrius) & Card (Kelvin Chow)
msc455magic
View Profile
Inner circle
Taipei, Taiwan
1522 Posts

Profile of msc455magic
Great stuff. Thanks!!!
Harald
View Profile
New user
82 Posts

Profile of Harald
Thank you Joe for posting. There is a software named stackview, available for free at stackview.com which also might interest you if you did not know that before.
Jasper-1975
View Profile
New user
4 Posts

Profile of Jasper-1975
Super!

I will definitely use this when trying to learn the Aronson stack.....again Smile

But also Stackview, mentioned above, is a great tool.
CardWiz
View Profile
Special user
Charleston, SC
621 Posts

Profile of CardWiz
Quote:
On 2010-02-28 22:28, huruey wrote:
Hi CardWiz. As you seem interested, I thought I'd explain why the more common shuffling algorithm as suggested by Mike is superior to swapping cards at random positions a large number of times. Firstly, the second algorithm produces no more random a result than the sequential swapping algorithm. In the first algorithm, every card in the deck is swapped to a random position at least once, meaning that regardless of the input order, all the permutations of the output are equally likely, which is as random as you can get. The algorithm you suggested, however, is in fact LESS random, as by only swapping random elements, regardless of the number of iterations, there is still a chance of some elements not being swapped at all. In terms of efficiency of the function, the first algorithm is also much faster, requiring only 52 iterations rather than say 10000.

I hope this makes sense. Smile

Joe


Yes, I see your point, but with 10000-100000 loops (which only takes about .2 seconds) every card is practically guaranteed to be called upon, and with 52 loops there is always the chance of swapping a pair twice.

But I suppose it does not matter as both sequences get the job done.

CW
People have been calling me "Yu" lately. I don't know, must be Chinese.
Medifro
View Profile
Inner circle
NJ
1178 Posts

Profile of Medifro
Joe that's AWESOME

~ Feras
huruey
View Profile
Loyal user
York, UK
205 Posts

Profile of huruey
Quote:
On 2010-03-01 23:21, CardWiz wrote:

Yes, I see your point, but with 10000-100000 loops (which only takes about .2 seconds) every card is practically guaranteed to be called upon, and with 52 loops there is always the chance of swapping a pair twice.

But I suppose it does not matter as both sequences get the job done.

CW


It does not matter if a card gets swapped twice, because by the end of the loop there is still a 1/52 of any card appearing at any position in the array. If you are having trouble seeing this, consider an alternative algorithm which more clearly produces the most random deck possible (for pseudo-random numbers at least), which creates a second array then loops through each element of the input array, randomly assigning it to any empty position in the second, thus every element has a 1/52 chance of finishing in any position in the output array. The first algorithm achieves this same result. When the loop is on an element, it has a 1/52 chance of going to any position in the array. The other 51 iterations, it has a 1/52 chance of being swapped with the current element. Counting itself, as it may end up swapping with itself, this means that every element is equally likely to swap to any position.

Also, regarding speed, for a start you'll find older browsers take significantly longer, and rather than 0.2 seconds, it would be taking closer to 5 seconds, and just one more 0 would take that to 50 seconds, and just a couple more operations inside the loop would might double that again. Also, should you, for any reason, later want to repeat the operation many times in succession, for example to produce test data for some model which involves shuffling a deck of cards, multiplying your shuffling operation by just 10000 more could leave people waiting several hours. It is always best to use the most efficient algorithm because in real life, you don't necessarily know when you or somebody else may want to use a procedure for something more intensive, especially in industry when many people end up working on and using the same code.


Joe
Joe Williamson
Chair of the University of York Magic Society
Free Memorized Stack Trainer: http://huruey.webs.com
Furniture
View Profile
Elite user
London
404 Posts

Profile of Furniture
I created a trainer in Excel few months ago. You may find some ideas, like the ACAAN trainer, for you web built-in version

tamariz
Close.Up.Dave
View Profile
Inner circle
Behind you!
2911 Posts

Profile of Close.Up.Dave
Anyone remember this one? http://www.stackview.com
Mike Powers
View Profile
Inner circle
Midwest
2436 Posts

Profile of Mike Powers
Joe's explanation is dead on. You really can't get more random than switching every card with a random card. And the loop is only 1 to 52. I think this is the standard way to "shuffle" a deck.

"It doesn't simulate a real riffle shuffle, though. In a real shuffle cards fall in clumps. Persi Diaconis worked out the math on shuffling. It takes 7 "good" riffle shuffles to randomize a deck. I think "random" in this case means that you can't find a pattern in the shuffled deck that gives you any info as to the initial condition of the deck before the 7 shuffles. "

From Wikipedia: ( http://en.wikipedia.org/wiki/Shuffling#Randomization )

"A famous paper by mathematician and magician Persi Diaconis, and mathematician Dave Bayer, on the number of shuffles needed to randomize a deck, concluded that the deck did not start to become random until five good riffle shuffles, and was truly random after seven, in the precise sense of variation distance described in Markov chain mixing time; of course, you would need more shuffles if your shuffling technique is poor."

Mike
nspikito
View Profile
Elite user
408 Posts

Profile of nspikito
Thanks, Joe. This is a super tool, both for learning a stack and keeping it fresh.
Spike
The Magic Cafe Forum Index » » Shuffled not Stirred » » Memorized Stack Trainer (Free) (2 Likes)
 Go to page 1~2~3 [Next]
[ Top of Page ]
All content & postings Copyright © 2001-2017 Steve Brooks. All Rights Reserved.
This page was created in 0.26 seconds requiring 5 database queries.
The views and comments expressed on The Magic Café
are not necessarily those of The Magic Café, Steve Brooks, or Steve Brooks Magic.
> Privacy Statement <

ROTFL Billions and billions served! ROTFL