Microsoft Small Basic

Program Listing: BKS854
i=1
ss=80
GraphicsWindow.Width =ss*9
GraphicsWindow.Height =ss*6
GraphicsWindow.PenWidth=0
GraphicsWindow.Title ="Flags of the World

For y=0 To 5
For x=0 To 8

rr[i]=Shapes.AddRectangle (ss ss)
Shapes.Move (rr[i] x*ss y*ss)
LDShapes.BrushColour (rr[i] LDColours.HSLtoRGB (x*15 1 .4+y/50))
i=i+1
EndFor
EndFor
args=0
ff=Shapes.AddText ("Flags of the World")
LDEffect.DropShadow (ff "")
LDShapes.Font (ff "Calibri" 44 "true" "true")
LDShapes.PenColour (ff "white")
LDShapes.Centre (ff GraphicsWindow.Width/2 GraphicsWindow.Height/2)
Program.Delay (1555)

Sub lmk
rs=""
For y=2 To 4
For x=1 To 18
rs=text.Append (rs args[y]+" ")
EndFor
EndFor
rs=rs+args[1]
return=rs
EndSub

Sub lm2
rs=""
For y=2 To 3
For x=1 To 27
rs=text.Append (rs args[y]+" ")
EndFor
EndFor
rs=rs+args[1]
return=rs
EndSub

Sub cmk
rs=""
For y=1 To 5
For x=2 To 4
For o=1 To 3
rs=text.Append (rs args[x]+" ")
EndFor
EndFor
EndFor
rs=rs+"0 0 0 0 0 0 0 0 0 "+args[1]
return=rs
EndSub

' 1 2 3 4 5 6 7 8
clm=ldtext.Split ("White Black Yellow Red Orange Green Blue #00bbdd Brown" " ")
clm[0]="gray

fld[4]="4 4 1 4 4 4 4 4 4:4 4 1 4 4 4 4 4 4:1 1 1 1 1 1 1 1 1:4 4 1 4 4 4 4 4 4:4 4 1 4 4 4 4 4 4:0 0 0 0 0 0 0 0 0:*
fld[5]=LDText.Replace (fld[4] 1 8)
fld[5]=LDText.Replace (fld[5] 4 1)
fld[5]=LDText.Replace (fld[5] "*" "Finland")

fld[6]=LDText.Replace (fld[4] 1 3)
fld[6]=LDText.Replace (fld[6] 4 8)
fld[6]=LDText.Replace (fld[6] "*" "Sweden")

fld[7]=LDText.Replace (fld[4] 1 7)
fld[7]=LDText.Replace (fld[7] "*" "Norway")
fld[4]=LDText.Replace (fld[4] "*" "Denmark")

fld [0]=ldcall.Function4 ("lmk" "Austria" 4 1 4)
fld [1]=ldcall.Function4 ("lmk" "Holland/Croatia" 4 1 7)
fld [2]=ldcall.Function4 ("lmk" "Slovenia/Russia/Slovakia" 1 7 4)
fld [3]=ldcall.Function4 ("lmk" "Serbia" 4 7 1)
fld [8]=ldcall.Function4 ("cmk" "Italy" 6 1 4)
fld [9]=ldcall.Function4 ("cmk" "France" 7 1 4)
fld[10]=ldcall.Function4 ("cmk" "Belgium" 2 3 4)
fld[11]=ldcall.Function4 ("cmk" "Ireland" 6 1 5)
fld[12]=ldcall.Function4 ("cmk" "Vatican" 0 3 1)
fld[21]=ldcall.Function4 ("cmk" "Romania/Andorra/Moldova" 7 3 4)
fld[15]=ldcall.Function4 ("lmk" "Hungary" 4 1 6)
fld[16]=ldcall.Function4 ("lmk" "Bulgaria" 1 6 4)
fld[21]=ldcall.Function4 ("lmk" "Armenia" 4 7 3)
fld[13]=ldcall.Function4 ("lmk" "Estonia" 8 2 1)
fld[14]=ldcall.Function4 ("lmk" "Luxembourg" 4 1 8)
fld[17]=ldcall.Function4 ("lmk" "Germany" 2 4 3)
fld[18]=ldcall.Function4 ("lmk" "Lithuania" 3 6 4)
fld[19]=ldcall.Function4 ("lmk" "Belarus" 4 4 6)
fld[20]=ldcall.Function4 ("lmk" "Azerbaijan" 8 4 6)
fld[25]=ldcall.Function3 ("lm2" "San_Marino" 1 8)
fld[22]=ldcall.Function3 ("lm2" "Poland" 1 4)
fld[23]=ldcall.Function3 ("lm2" "Monaco" 4 1)
fld[24]=ldcall.Function3 ("lm2" "Liechtenstein" 8 4)
fld[26]=ldcall.Function3 ("lm2" "Ukraine" 8 3)
For x=0 To Array.GetItemCount (fld)-1
flm[x+1]=ldtext.Split (ldtext.Replace (fld[x] ":" " ") " ")
EndFor
'TextWindow.WriteLine (flm[5])
While "true
For x= 1 To Array.GetItemCount (flm)
For y=1 To 54
LDShapes.BrushColour (rr[y] clm[flm[x][y]])
LDShapes.AnimateOpacity (rr[y] 250 5)
program.Delay (25)
EndFor
Shapes.SetText (ff flm[x][55])
LDShapes.Centre (ff GraphicsWindow.Width/2 GraphicsWindow.Height-55)
Program.Delay (2555)
EndFor
EndWhile