Microsoft Small Basic

Program Listing: CMR707
numRows=8
numCols=8
side=30 'width, height of a block
numBlocks=4 'number of blocks in the pattern
GraphicsWindow.Width=numCols*numBlocks*side
GraphicsWindow.height=numRows*numBlocks*side
GraphicsWindow.BackgroundColor="black"
GraphicsWindow.canresize="false"
x=0
y=0
color1=graphicswindow.GetRandomColor()
color2=graphicswindow.GetRandomColor()
color3=graphicswindow.GetRandomColor()
For down=1 to numRows
For across=1 to numCols
pattern()
x=x+side
y=y-side*(numBlocks-1)
Program.Delay(200)
endfor
y=y+side*numBlocks
x=0
endfor

Sub tri1
GraphicsWindow.FillTriangle(x,y,x,y+side,x+side,y+side)
endsub
Sub tri2
GraphicsWindow.FillTriangle(x,y,x+side,y,x+side,y+side)
endsub
Sub tri3
GraphicsWindow.FillTriangle(x,y,x+side,y,x,y+side)
endsub
Sub tri4
GraphicsWindow.FillTriangle(x+side,y,x,y+side,x+side,y+side)
endsub
Sub block1
GraphicsWindow.BrushColor=c1
tri1()
GraphicsWindow.brushColor=c2
tri2()
endsub
Sub block2
GraphicsWindow.BrushColor=c1
tri3()
GraphicsWindow.BrushColor=c2
tri4()
endsub
Sub pattern
'templates for quilt blocks:
'http://www.quilterscache.com/QuiltBlocksGalore.html
'http://www.blockcrazy.com/classicpiecedblocks.htm
c1=color1
c2=color2
block1()
x=x+side
c1=color2
c2=color3
block2()
x=x+side
c1=color3
c2=color1
block1()
x=x+side
c1=color1
c2=color2
block2()
y=y+side
x=x-side*(numBlocks-1)
c1=color1
c2=color3
block2()
x=x+side
c1=color3
c2=color2
block2()
x=x+side
c1=color1
c2=color3
block1()
x=x+side
c1=color3
c2=color2
block1()
y=y+side
x=x-side*(numBlocks-1)
c1=color2
c2=color3
block1()
x=x+side
c1=color3
c2=color1
block1()
x=x+side
c1=color2
c2=color3
block2()
x=x+side
c1=color3
c2=color1
block2()
y=y+side
x=x-side*(numBlocks-1)
c1=color2
c2=color1
block2()
x=x+side
c1=color1
c2=color3
block1()
x=x+side
c1=color3
c2=color2
block2()
x=x+side
c1=color2
c2=color1
block1()

endsub