TI-83+ Megaminx scramble generator

Scigatt

Regular
Joined
Nov 2, 2008
Messages
101
Location
Vancouver, Canada
Inspired by Swordsman Kirby's 3x3 scramble program. Did this at 3 am so it isn't the best, but it works.

Code:
ClrHome
1->Q
For(X,1,13,3)
Output(1,X,"R")
Output(1,X+1,"D")
End
Output(1,16,"U")
For(X,0,34,1)
iPart(X/5)+2)->Y
15fpart(X/5)->Z
While Q=/=0
randInt(0,1)->R
If R=0
Then
Output(Y,Z+Q,"-")
Else
Output(Y,Z+Q,"+")
End
Q+1->Q
If Q=3
Then
0->Q
End
End
1->Q
End
For(X,2,8,1)
randInt(0,1)->R
If R=0
Then
Output(X,16,"'")
End
End

Example output:
Code:
RD RD RD RD RD U
+- +- ++ -+ -- '
-- -+ -+ ++ -+ '
+- +- -+ -+ ++ '
-- ++ -+ ++ +- '
++ +- -- ++ -- '
++ -- ++ ++ ++
++ +- -- -+ -- '

Wanted to do it this way, but calculator was acting pissy and got an error around the third +/- sign:
Code:
ClrHome
For(X,1,13,3)
Output(1,X,"R")
Output(1,X+1,"D")
End
Output(1,16,"U")
For(X,0,104,1)(was 1->105, those lines with X+1 had X)
If fpart((X+1)/3)=/=0(this line and the next were actually 2 lines down originally)
Then
iPart(X/15)+2->Y
15fpart((X+1)/15)->Z
randInt(1,0)->R
If R=0
Then
Output(Y,Z,"-")
Else
Output(Y,Z,"+")
End
End
End
For(X,2,8,1)
randInt(0,1)->R
If R=0
Then
Output(X,16,"'")
End
End
 
Have some more efficient code.
Code:
ClrHome
For(X,1,13,3)
 Output(1,X,"R")
 Output(1,X+1,"D")
End
Output(1,16,"U")
For(X,2,8)
 For(Y,0,9)
  1+Y+iPart(Y/2)->Z
  Output(X,Z,"+")
  If 0=randInt(0,1)
   Output(X,Z,"-")
 End
 If 0=randInt(0,1)
  Output(X,16,"'")
End

And if you're a fan of code golf: 125 memory-units (EDIT: improved to 121)
Code:
ClrHome
For(X,1,13,3
Output(1,X,"R
Output(1,X+1,"D
End
Output(1,16,"U
For(X,2,8
For(Y,0,9
1+Y+iPart(Y/2->Z
Output(X,Z,"+
If randInt(0,1
Output(X,Z,"-
End
If randInt(0,1
Output(X,16,"'
End
 
Last edited:
And if you're a fan of code golf: 125 memory-units (EDIT: improved to 121)
Code:
ClrHome
For(X,1,13,3
[b]Output(1,X,"R
Output(1,X+1,"D[/b]
End
Output(1,16,"U
For(X,2,8
For(Y,0,9
1+Y+iPart(Y/2->Z
Output(X,Z,"+
If randInt(0,1
Output(X,Z,"-
End
If randInt(0,1
Output(X,16,"'
End

Output(1,X,"RD
?

I have 97 characters

Code:
ClrHome
Disp "RD RD RD RD RD U
For(X,2,8
For(Y,1,14
If 3≠gcd(Y,3
Output(X,Y,sub("+-",randInt(1,2),1
End
If .5>rand
Output(X,16,"'
End
 
Last edited:
I have 97 characters

Code:
ClrHome
Disp "RD RD RD RD RD U
For(X,2,8
For(Y,1,14
If 3≠gcd(Y,3
Output(X,Y,sub("+-",randInt(1,2),1
End
If .5>rand
Output(X,16,"'
End

Very nice work, however here is 93 characters

Code:
ClrHome
Disp "RD RD RD RD RD U
For(X,2,8
For(Y,1,14
If fPart(Y/3
Output(X,Y,sub("+-",randInt(1,2),1
End
If iPart(2rand
Output(X,16,"'
End
 
Back
Top