This is my Rubik's Cube timer program:
I've tried to optimize it as much as possible, and here is the program so far:
Note: → is represented as [->] , small E is represented as slash e slash , ≤ is represented as [<=] and ≠ is represented as [!=]
prgmTITIMER1
//Generates notation string
"F'F F2B'BB2R'R R2L'LL2U'UU2D'DD2 -> Str1
//Asks what character you want around the border, and if length is not 1, repeats the action
Lbl 0
Prompt Str3
If 1!=length(Str3
Goto 0
//Draws border
For(X,1,16
For(Y,1,8
If X=1 or X=16 or Y=1 or Y=8
Output(Y,X,Str3
End:End
//Starts a Loop for E, which at the end of the code will put the final time at the 'E'th part of L₆
DelVarDFor(E,1,/e/9
//Generates scramble
For(C,2,5
2->B
//This part of scramble generating doesn't use a For( loop because that will mean gaps in the scramble, see near end of While loop
While B<=14
randInt(1,18->A
//This part prevents redundancy
If int(A/6)=int(D/6
Goto 1
Output(C,B,sub(Str1,2A-1,2
A->D
B+2->B
Lbl 1
End:End
Output(7,2,"Press [Enter].
Pause
For(C,2,7
Output(C,2," //14 spaces
End
Output(4,9,0
Pause
//Actual timer (the timing system isn't entirely accurate, but I wanted to save information on the increment level, and it's only off by ~1 second every 5 minutes.)
For(A,1,/e/9,.022
Output(4,5,A
If getKey: Goto 2
End
Lbl 2
A->L₆(E
Pause
End