Microsoft Small Basic

Program Listing: FSM153
' March Community Challenge - Small Basic Quilt Program // Quilt pattern -2 by NaochanON
init()
make_triangles()

Sub make_triangles
Scolor="1=Yellow;2=Orange;3=Cyan;4=Red" ' shape color
pos[1]="1=0;2=0;3=0;4=1;5=1;6=1"
pos[2]="1=0;2=1;3=1;4=0;5=1;6=1"
pos[3]="1=0;2=0;3=1;4=0;5=1;6=1"
pos[4]="1=0;2=0;3=0;4=1;5=1;6=0"
dR8=8*dR
For j=1 To GH/dR/8
For i=1 To GW/dR/8
NMB=J+":"+I
N1= text.GetSubText(pat[j],(I-1)*3+1,1)
N2= text.GetSubText(pat[j],(I-1)*3+2,1)
If N1<>0 Then
GraphicsWindow.BrushColor=Scolor[N1]
shp[NMB][1]=Shapes.AddTriangle(dR8*pos[N1][1],dR8*pos[N1][2],dR8*pos[N1][3],dR8*pos[N1][4],dR8*pos[N1][5],dR8*pos[N1][6])
Shapes.SetOpacity(shp[NMB][1],60)
Shapes.Animate(shp[NMB][1],I*dr8,(J-1)*dr8,200)
EndIf
If N2<>0 then
GraphicsWindow.BrushColor=Scolor[N2]
shp[NMB][2]=Shapes.AddTriangle(dR8*pos[N2][1],dR8*pos[N2][2],dR8*pos[N2][3],dR8*pos[N2][4],dR8*pos[N2][5],dR8*pos[N2][6])
Shapes.SetOpacity(shp[NMB][2],60)
Shapes.Animate(shp[NMB][2],I*dr8,(J-1)*dr8, 200)
EndIf
EndFor
EndFor
EndSub

Sub init
GW=800
GH=640
dR=10
GraphicsWindow.Width=GW
GraphicsWindow.Height=GH
BCLR="1=#98D98E;2=#82AE46;3=#47885E;4=#00A497;5=#164A84;6=#7058A3;7=#C3D825;8=#E6B422;9=#F39800;10=#C37854"
For j=1 To GH/dR
For i=1 To GW/dR
GraphicsWindow.BrushColor=BCLR[Math.GetRandomNumber(2)+Math.GetRandomNumber(3)]
GraphicsWindow.FillRectangle(dR*(i-1),dR*(j-1),dR,dR) ' Background color
EndFor
EndFor
' quilt pattern
pat[1]="00 00 10 02 10 02 00 00 "
pat[2]="00 13 13 40 03 42 42 00 "
pat[3]="03 13 00 10 02 00 42 40 "
pat[4]="02 40 03 13 42 40 03 10 "
pat[5]="03 10 02 42 13 10 02 40 "
pat[6]="02 42 00 40 03 00 13 10 "
pat[7]="00 42 42 10 02 13 13 00 "
pat[8]="00 00 40 03 40 03 00 00 "
EndSub