48 lines
967 B
Text
48 lines
967 B
Text
_window = 1
|
|
|
|
_width = 81
|
|
_height = 5
|
|
|
|
window _window, @"FutureBasic Cantor Set", ( 0, 0, 695, 100 )
|
|
WindowSetBackgroundColor( _window, fn ColorWhite )
|
|
text @"Menlo", 14.0, fn ColorRed
|
|
|
|
begin globals
|
|
CFStringRef gInterval( _height, _width )
|
|
end globals
|
|
|
|
local fn Init
|
|
NSInteger i, j
|
|
|
|
for i = 0 to _height - 1
|
|
for j = 0 to _width - 1
|
|
gInterval( i, j ) = @"◼︎"
|
|
next
|
|
next
|
|
end fn
|
|
|
|
local fn CantorSet( start as NSInteger, length as NSInteger, index as NSInteger )
|
|
NSInteger i, j, segment = length / 3
|
|
|
|
if segment == 0 then exit fn
|
|
for i = index to _height - 1
|
|
for j = start + segment to start + segment * 2 - 1
|
|
gInterval( i, j ) = @" "
|
|
next
|
|
next
|
|
fn CantorSet( start, segment, index + 1 )
|
|
fn CantorSet( start + segment * 2, segment, index + 1 )
|
|
end fn
|
|
|
|
NSInteger i, j
|
|
|
|
fn Init
|
|
fn CantorSet ( 0, _width, 1 )
|
|
for i = 0 to _height - 1
|
|
for j = 0 to _width - 1
|
|
print gInterval( i, j );
|
|
next
|
|
print
|
|
next
|
|
|
|
HandleEvents
|