Well here is my 390 stroke code that works great except it does not not follow described shifting rules. It shifts the entire table for each letter. Per the rules it passes through any character that is not in the (0-9Z-Aa-z) text string.
I liked the challenge except I think future games should allow more flexibility in the way we get to the end result. This would provide a wider range of approaches to the coded solution.
Code:
Function Vigenere($a,$b, optional $c)
Dim $d,$L,$p,$,$r,$s,$T[62],$x,$z
for $=0 to 25
$s = chr($+65) + $s + chr($+97)
next
$s = "0123456789" + $s
for $z=1 to len($a)
$L=substr($a,$z,1)
$p=instr($s,$L)
if $p
for $x=0 to 61
$=($x+2*$z) mod 62 + 1
$T[$x]=Substr($s,$)+Left($s,$-1)
next
do
$d=$d mod len($b) + 1
$=instr($s,substr($b,$d,1))
until $
$=$T[$]
$L=iif($c,substr($s,instr($,$L),1),substr($,$p,1))
endif
$r=$r+$L
next
$Vigenere = $r
EndFunction
My Tables:
Code:
0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
0 23456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01
1 3456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012
2 456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123
3 56789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234
4 6789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345
5 789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456
6 89ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234567
7 9ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345678
8 ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789
9 YXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789Z
Z XWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZY
Y WVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYX
X VUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXW
W UTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWV
V TSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVU
U SRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUT
T RQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTS
S QPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSR
R PONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQ
Q ONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQP
P NMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPO
O MLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPON
N LKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONM
M KJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONML
L JIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLK
K IHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJ
J HGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJI
I GFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIH
H FEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHG
G EDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGF
F DCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFE
E CBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFED
D BAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDC
C Aabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCB
B abcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBA
A bcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAa
a cdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAab
b defghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabc
c efghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcd
d fghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcde
e ghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdef
f hijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefg
g ijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefgh
h jklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghi
i klmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghij
j lmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijk
k mnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijkl
l nopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklm
m opqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmn
n pqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmno
o qrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnop
p rstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopq
q stuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqr
r tuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrs
s uvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrst
t vwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstu
u wxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuv
v xyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvw
w yz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwx
x z0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxy
y 0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
z 123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0
0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
0 456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123
1 56789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234
2 6789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345
3 789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456
4 89ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234567
5 9ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345678
6 ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789
7 YXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789Z
8 XWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZY
9 WVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYX
Z VUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXW
Y UTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWV
X TSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVU
W SRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUT
V RQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTS
U QPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSR
T PONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQ
S ONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQP
R NMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPO
Q MLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPON
P LKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONM
O KJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONML
N JIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLK
M IHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJ
L HGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJI
K GFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIH
J FEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHG
I EDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGF
H DCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFE
G CBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFED
F BAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDC
E Aabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCB
D abcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBA
C bcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAa
B cdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAab
A defghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabc
a efghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcd
b fghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcde
c ghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdef
d hijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefg
e ijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefgh
f jklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghi
g klmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghij
h lmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijk
i mnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijkl
j nopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklm
k opqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmn
l pqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmno
m qrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnop
n rstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopq
o stuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqr
p tuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrs
q uvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrst
r vwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstu
s wxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuv
t xyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvw
u yz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwx
v z0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxy
w 0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
x 123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0
y 23456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01
z 3456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012
and so on...