I made a couple programs for you guys. Here's the source codes.
Download links: [submitted, waiting for it to be added]
PROGRAM:SLIDE
Code:
PROGRAM:RUBIK
Code:
Any suggestions and optimizations are welcome!
Download links: [submitted, waiting for it to be added]
PROGRAM:SLIDE
Code:
Repeat min(9>abs(13-2{H,W
Prompt H,W
End
0->theta
cumSum(binomcdf(HW-1,0->L1
For(I,1,HW-2
randInt(I,HW-1->X
theta xor X!=I->theta
L1(X->Y
L1(I->L1(X
Y->L1(I
I-theta(I=HW-2->I
End
sum(L1=cumSum(binomcdf(HW-1,0->N
AxesOff
FnOff
PlotsOff
ClrDraw
25-3H->D
int(4.5(9-W->E
For(R,1,H
For(C,1,W-(R=H
L1(WR-W+C
Text(6R+D,9C+2(Ans<=9)+E,Ans
End
End
H->R
Repeat K=45 or N=HW
Repeat Ans
getKey->K
End
max(1,min(H,R+sum(DeltaList(K={25,34->X
max(1,min(W,C+sum(DeltaList(K={24,26->Y
If XY!=RC
Then
WR-W+C->Z
WX-W+Y->theta
L1(theta->L1(Z
Text(6R+D,9C+2(Ans<=9)+E,Ans
Text(6X+D,9Y+E," "
N+sum(DeltaList(Ans={theta,Z->N
X->R
Y->C
End
End
ClrHome
ClrDraw
Output(1,1,"
If N=HW
"WIN
PROGRAM:RUBIK
Code:
0->Xmin
94->Xmax
0->Ymin
62->Ymax
AxesOff
GridOff
FnOff
ClrDraw
For(A,0,3
Line(47+9A,61-5A,20+9A,46-5A
Line(47-9A,61-5A,74-9A,46-5A
Line(20,46-10A,47,31-10A
Line(47,31-10A,74,46-10A
Line(20+9A,46-5A,20+9A,16-5A
Line(47+9A,31+5A,47+9A,1+5A
End
1+int(round(3^^-1cumSum(not(binompdf(8,0
List>matr(Ans,Ans,Ans,Ans+3,Ans+3,Ans+3,[A]
{3,3->dim([B]
For(A,0,2
For(B,0,2
Text(3+5A+5B,46-9A+9B,[A](A+1,B+1
Text(20+10A+5B,23+9B,[A](A+4,B+1
Text(30+10A-5B,51+9B,[A](A+7,B+1
End
End
{41.61,32.56,23.51,17.42,17.32,17.22,23.11,32.06,41.01,53.01,62.06,71.11,77.22,77.32,77.42,71.51,62.56,53.61->L1
1->A
Repeat K=45
int(L1(A->B
e2(L1(A)-B->C
Pt-On(B,C,3
Repeat Ans
getKey->K
End
Pt-Off(B,C,3
A
If K=24
A-(abs(A-10)<4)+(abs(A-9)>5
If K=25
A-(abs(2A-11)<9)+(abs(2A-27)<9
If K=26
A-(abs(A-10)>5)+(abs(A-9)<4
If K=34
A-(A>10)+(A<9
Ans-18(Ans=19)+18not(Ans->A
If K=15
Then
Menu("SCRAMBLE?","YES",A,"NO",B
Lbl A
(123,135,154,142,632,653,645,624->L2
{12,13,14,15,23,24,53,54,62,63,64,65->L3
0->G
For(F,1,7
randInt(F,8->D
G xor D!=F->G
L2(D->E
L2(F->L2(D
E->L2(F
End
For(F,1,11
randInt(F,12->D
G xor D!=F->G
L3(D->E
L3(F->L3(D
E->L3(F
F-G(F=11->F
End
randInt(0,2,7->L4
sum(L4
3-Ans-3int(1-Ans/3->L4(8
int(e3fPart(1.001L210^(~L4->L2
randInt(0,1,11->L4
sum(L4
2-Ans-2int(1-Ans/2->L4(12
int(e2fPart(1.01L310^(~L4->L3
{334371,137366,116414,311641,769163,964693,943444,746136->L4
For(F,1,8
L2(F->D
L4(F->E
int(D/e2->[A](int(E/e5),int(10fPart(E/e5
int(10fPart(D/e5->[A](int(10fPart(E/e4)),int(10fPart(E/e3
10fPart(D/10->[A](int(10fPart(E/e2)),10fPart(E/10
End
{3242,2372,2115,1265,5381,5126,5683,5424,7562,8692,8435,9545->L4
For(F,1,12
L3(F->D
L4(F->E
int(D/10->[A](int(E/e3),int(10fPart(E/e3
10fPart(D/10->[A](int(10fPart(E/e2)),10fPart(E/10
End
For(D,0,2
For(E,0,2
Text(3+5D+5E,46-9D+9E,[A](D+1,E+1
Text(20+10D+5E,23+9E,[A](D+4,E+1
Text(30+10D-5E,51+9E,[A](D+7,E+1
End
End
Lbl B
DispGraph
End
If K=21 or K=31
Then
A+(K=31)(6int((A-1)/3)-18(A>9)+13-2A->theta
int((theta+2)/3->D
theta+2-3D->E
If D=1
Then
{1+E,1+E,1+E,7,8,9,9-E,9-E,9-E,3,2,1,1+E,1+E,1+E->L2
{1,2,3,3-E,3-E,3-E,6,5,4,4+E,4+E,4+E,1,2,3->L3
End
If D=2
Then
E+{1,1,1,4,4,4,7,7,7,6-2E,6-2E,6-2E,1,1,1->L2
{4,5,6,1,2,3,1,2,3,6,5,4,4,5,6->L3
End
If D=3
Then
{6,5,4,9,8,7,6,5,4,3,2,1,6,5,4->L2
E+{4,4,4,4,4,4,1,1,1,1,1,1,4,4,4->L3
End
If D=4
Then
{1,2,3,7+E,7+E,7+E,9,8,7,3-E,3-E,3-E,1,2,3->L2
{6-E,6-E,6-E,4,5,6,1+E,1+E,1+E,3,2,1,6-E,6-E,6-E->L3
End
If D=5
Then
-E+{4+2E,4+2E,4+2E,9,9,9,6,6,6,3,3,3,4+2E,4+2E,4+2E->L2
{4,5,6,3,2,1,3,2,1,6,5,4,4,5,6->L3
End
If D=6
Then
{1,2,3,4,5,6,7,8,9,4,5,6,1,2,3->L2
-E+{3,3,3,3,3,3,6,6,6,6,6,6,3,3,3->L3
End
seq([A](L2(X),L3(X)),X,1,15->L4
For(X,1,12
L4(X+3->[A](L2(X),L3(X
End
If E!=1
Then
{3.3,0,.3,3,6.3,6,3.3,0,.3
Ans(D+3E/2->H
10fPart(Ans->I
int(H->H
For(J,1,3
For(K,1,3
[A](H+J,I+K->[B](J,K
End
End
If E
Then
rowSwap([B]^^T,1,3->[B]
Else
rowSwap([B],1,3)^^T->[B]
End
For(J,1,3
For(K,1,3
[B](J,K->[A](H+J,I+K
End
End
End
For(F,0,2
For(G,0,2
Text(3+5F+5G,46-9F+9G,[A](F+1,G+1
Text(20+10F+5G,23+9G,[A](F+4,G+1
Text(30+10F-5G,51+9G,[A](F+7,G+1
End
End
End
End
ClrDraw
AxesOn
FnOn
DelVar [A]DelVar [B]0->dim(L1
0->dim(L2
0->dim(L3
0->dim(L4
Any suggestions and optimizations are welcome!