Microsoft Small Basic

Program Listing: RKB757
XMAX = 440
YMAX = 400
HABA = 60
RITTAIDO = 2
XSTEP = 5
YSTEP = 5
GraphicsWindow.Width=440
GraphicsWindow.Height=400
Sub NAKANUKESIKAKU
QBColor()
GraphicsWindow.BrushColor=col
GraphicsWindow.FillRectangle(X1, Y1, X2 - X1, NAKA)
GraphicsWindow.FillRectangle(X1, Y2 - NAKA, X2 - X1, NAKA)
GraphicsWindow.FillRectangle(X1, Y1, NAKA, Y2 - Y1)
GraphicsWindow.FillRectangle(X2 - NAKA, Y1, NAKA, Y2 - Y1)
EndSub
Sub OBJECTBYOGA
X1=20
Y1=70
X2=160
Y2=200
NAKA=30
CNumber=3
NAKANUKESIKAKU()
X1=80
Y1=120
X2=210
Y2=290
NAKA=30
CNumber=5
NAKANUKESIKAKU()
X1=120
Y1=210
X2=320
Y2=350
NAKA=30
CNumber=8
NAKANUKESIKAKU()
X1=40
Y1=20
X2=260
Y2=300
NAKA=40
CNumber=12
NAKANUKESIKAKU()
EndSub
OBJECTBYOGA()
For Y = 0 To YMAX Step YSTEP
For i = 0 To XMAX
SIZ[i] = 0
EndFor
TAKASALOAD()
For X = 0 To XMAX Step XSTEP
TAKASA1 = TAKASA[X] * RITTAIDO
If SIZ[X] = 0 Then
SIZ[X] =Math.GetRandomNumber(6)+ 1
EndIf
PLUS = SIZ[X]
GraphicsWindow.PenColor="Navy"
GraphicsWindow.PenWidth=1
GraphicsWindow.DrawRectangle( X + 1, Y + 1, PLUS, PLUS)
GraphicsWindow.PenColor="Silver"
GraphicsWindow.DrawRectangle(X,Y,PLUS,PLUS)
TUGI = X + HABA - TAKASA1
If TUGI + XSTEP <= XMAX Then
For i = 0 To XSTEP - 1
SIZ[TUGI + i] = SIZ[X]
EndFor
EndIf
EndFor
EndFor '
Sub QBCN
If (col1 = "#000000") Or (col1="FF000000") Then
CNumber1 = 0
ElseIf (col1 = "#000080") Or (col1 = "#FF000080") Then
CNumber1 = 1
ElseIf (col1 = "#008000") Or (col1 = "#FF008000") Then
CNumber1= 2
ElseIf (col1 = "#008080") Or (col1 = "#FF008080") Then
CNumber1 = 3
ElseIf (col1 = "#800000") Or (col1 = "#FF800000") Then
CNumber1 = 4
ElseIf (col1 = "#800080") Or (col1 = "#FF800080") Then
CNumber1 = 5
ElseIf (col1 = "#808000") Or (col1 = "#FF808000") Then
CNumber1 = 6
ElseIf (col1 = "#C0C0C0") Or (col1 = "#FFC0C0C0") Then
CNumber1 = 7
ElseIf (col1 = "#808080") Or (col1 = "#FF808080") Then
CNumber1 = 8
ElseIf (col1 = "#0000FF") Or (col1 = "#FF0000FF") Then
CNumber1 = 9
ElseIf (col1 = "#00FF00" ) Or (col1 = "#FF00FF00" ) Then
CNumber1 = 10
ElseIf (col1 = "#00FFFF") Or (col1 = "#FF00FFFF") Then
CNumber1 = 11
ElseIf (col1 = "#FF0000") Or (col1 = "#FFFF0000") Then
CNumber1 = 12
ElseIf (col1 = "#FF00FF") Or (col1 = "#FFFF00FF") Then
CNumber1 = 13
ElseIf (col1 = "#FFFF00") Or (col1 = "#FFFFFF00") Then
CNumber1 = 14
ElseIf (col1 = "#FFFFFF") Or (col1 = "#FFFFFFFF") Then
CNumber1 = 15
EndIf
Endsub
Sub QBColor
If (CNumber=0) Then
col="Black"
EndIf
If (CNumber=1) Then
col="Navy"
EndIf
If (CNumber=2) Then
col="Green"
EndIf
If (CNumber=3) Then
col="Teal"
EndIf
If (CNumber=4) Then
col="Maroon"
EndIf
If (CNumber=5) Then
col="Purple"
EndIf
If (CNumber=6) Then
col="Olive"
EndIf
If (CNumber=7) Then
col="Silver"
EndIf
If (CNumber=8) Then
col="Gray"
EndIf
If (CNumber=9) Then
col="Blue"
EndIf
If (CNumber=10) Then
col="Lime"
EndIf
If (CNumber=11) Then
col="Aqua"
EndIf
If (CNumber=12) Then
col="Red"
EndIf
If (CNumber=13) Then
col="Fuchsia"
EndIf
If (CNumber=14) Then
col="Yellow"
EndIf
If (CNumber=15) Then
col="White"
EndIf
EndSub
Sub TAKASALOAD
For X = 0 To XMAX
col1 = GraphicsWindow.GetPixel(X, Y)
QBCN()
TAKASA[X] = CNumber1
EndFor
GraphicsWindow.BrushColor=GraphicsWindow.BackgroundColor
GraphicsWindow.FillRectangle(0,Y,XMAX,YSTEP)
EndSub