All right, here's my code:
Week 1:
Don't remember it right now. I think it's the same as PT_'s.
Week 2:
Code: Ans->Str1
1->A
15->B
"ABCDEFGHIJKLMNOPQRSTUVWXYZ
For(X,1,length(Str1
Ans+sub(Ans,1+remainder(A+BinString(Ans,sub(Str1,X,1)),26),1
End
sub(Ans,27,X-1
Week 3:
Code: Ans->Str1
"CALCULATORS->Str2
ZStandard
"sub(Str1,I,1->|u
"ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ans+Ans
For(I,1,length(Str1
If |u!="
Then
Ans+sub(Ans,27+inString(Ans,|u)-inString(Ans,sub(Str2,1+remainder(Y,length(Str2)),1)),1
IS>(Y,I
Else
Ans+"
End
End
sub(Ans,53,I-1
This is an interesting one. Because we need to store the key in a variable (Str2), and take the ciphertext from Ans, we can't get away with what we did in Week 4 (using no variables). Therefore, instead of [alphabet, ciphertext, plaintext] Ans just holds two copies of the alphabet and the plaintext. Two copies removes the need for a remainder(,26.
Since Ans is taken, we also use the u variable to store the Ith character of the ciphertext. We only use u twice, but it still pays off. We can't use u to store any of the strings, because u is stored as a string, and strings can't be in strings.
Finally, instead of counting the spaces by incrementing Y the ordinary way (or counting the spaces at each iteration), we zero it by redrawing the graph screen (ZStandard), and then use IS>(. I was happy that this included the rare IS>(.
Week 4:
Code: "ABCDEFGHIJKLMNOPQRSTUVWXYZ
For(R,0,62
Ans+sub(Ans,1+remainder(Sigma(Cpxl-Test(R,C),C,0,94),27),1
End
sub(Ans,28,R
Week 5:
Code: Ans->Str1
9
For(X,1,length(Str1
Ans+[i][i]^expr(sub(Str1,X,1
Pxl-On(imag(Ans),real(Ans
End
I wrote the first one independently, but I soon found that DarkerLine had used the same technique years ago! The idea is to append the code to the alphabet, store that in Ans, and then chop off the alphabet at the end. This makes it so Ans can be used for everything, and eliminates those two-byte references to Str1.