At one point I did wonder if it would even fit into a 14M as I casually suggested it would
Luckily the 14M has 256 bytes of program space, and my code uses about 150 bytes so a good amount left over.
An additional problem ...
It's great being a magician on a stage where you have complete control over the setup, exit stage right with the trick and the audience don't get to play, but where us mere mortals are likely to be showing off our magical skills will be the pub, playground or office and people will want, "give it here" access, so what to do ?
Following up on some links I got sent, one nice bit of patter was AC : alternating current, DC : direct current, and super-magical SC : specific current which is of course what this trick runs on
So that gives "an out" as to why only the magician can control the trick having mastery over SC which others don't, so handing it over is no problem as long as the audience don't have the power of SC, ie each switch only activates the bulb opposite when in their hands.
That's just another "reset mode" which locks it into one-to-one mapping once the trick is over and the prop is handed around. One thought was to timeout on all switches on for 10s and then enter the locked-mode as soon as the switches are set all off. "Give it here", set all switches on, give some spiel for 10s, turn the switches off, hand it over. It'll never behave as a trick in their hands.
Getting it back into trick mode is an issue as someone will want to see it done again. "You've discharged the SC, I have to take it home to recharge" is a bit weak, so perhaps a concealed magnet and reed relay ?
Any other suggestions ?
Hardware
What's the best way to drive small bulbs ? ULN2803 darlington drivers ?