Code: REM Munching squares (slow version)
W% = 512
VDU 23,22,W%;W%;8,16,16,0 : OFF
FOR X% = 0 TO W%-1
FOR Y% = 0 TO W%-1
B% = (X% EOR Y%) AND 255
COLOUR 7, B%, B%>>1, 255-B%
PLOT 2*X%, 2*Y%
NEXT
NEXT
REPEAT UNTIL INKEY(1)=0
END
Code: REM Munching squares (fast version)
SetPixel% = FNSYS_NameToAddress("SetPixel")
H% = @memhdc%
W% = 512
VDU 23,22,W%;W%;8,16,16,0 : OFF
FOR X% = 0 TO W%-1
FOR Y% = 0 TO W%-1
B% = (X% EOR Y%) AND 255
C% = &10000*(255-B%) OR &100*(B%>>1) OR B%
SYS SetPixel%, H%, X%, W%-Y%-1, C%
NEXT
NEXT
SYS "InvalidateRect", @hwnd%, 0, 0
REPEAT UNTIL INKEY(1)=0
END
DEFFNSYS_NameToAddress(f$):LOCALP%:DIMP%LOCAL5:[OPT 0:call f$:]:=P%!-4+P%
Based on the Liberty BASIC program listed at Rosetta Code:
http://rosettacode.org/wiki/Munching_squares
David.
--