Code: Select all
' Program: Fill
' Target: Windows 10/11 Console
' Fill an area with spades of fill characters
' Tested with US English Windows 10 and Consolas font
' Subroutine FillArea Copyright 2022 Donald S Montaine
' Released under the Creative Commons CC-BY license
'=========================================
' SUBROUTINES
'=========================================
sub FillArea(Byval FillType as string, _ ' "S" Space, "L" Light, "M" Medium, "H" Heavy
Byval StartY as integer, _ ' Row of upper left corner of fill
Byval StartX as integer, _ ' Column of upper left corder of fille
Byval FillWidth as integer, _ ' Width of the fill
Byval FillHeight as integer, _ ' Height of the fille
Byval AreaColor as integer) ' Color of the fill
' Variable definitions
dim ctr as integer ' loop counter
dim FillChar as integer ' the code of the character used to fill the area
dim FillString as string ' String used to fill the area
' Codes for character used to build FillString
select case FillType
case "S" : FillChar = 32
case "L" : FillCHar = 176
case "M" : FillChar = 177
case "H" : FillChar = 178
case else : return
end select
For ctr = 1 to FillWidth
FillString += chr(FillChar)
next
' Draw the Box
locate StartY, StartX
color AreaColor
for ctr as integer = StartY to StartY+FillHeight
locate ctr,StartX
print FillString ;
next
end sub
'========================================
' MAIN PROGRAM
'++++++++++++++++++++++++++++++++++++++++
dim LocY as integer ' column location of upper left corner of box
dim LocX as integer ' row location of upper left corner of box
dim Wid as integer ' width of box
dim Hgt as integer ' height of box
' Colors Enumeration (0 - 15) ie Black = 1, Cyan = 4 etc
Enum
Black : Blue : Green : Cyan : Red : Majenta : Brown : LightGrey : DarkGrey
BrightBlue : BrightGreen : BrightCyan : BrightRed : BrightMajenta : Yellow : White
end enum
width 80,24 ' set width and height of console
FillArea("S",5,10,60,14,Black)
sleep 500
FillArea("L",5,10,60,14,BrightCyan)
sleep 750
FillArea("H",7,20,40,10,BrightBlue)
sleep 750
FillArea("S",5,10,60,14,Black)
sleep 1000
FillArea("L",5,10,60,14,Green)
sleep 750
FillArea("H",7,20,40,10,BrightGreen)
sleep 500
FillArea("H",10,36,10,4,Black)
sleep 500
locate 24,1
print "Press any key to exit " ;
sleep