If you draw always in one colour, you end with a square of that colour via finer/more wriggly lines. Boring finish! So I added a cycling of colours and was pleased with the result!
One of a number of variations.
' Rosetta Code -Peano Curve ' http://rosettacode.org/wiki/Peano_curve ' Produce a graphical representation of a Peano curve of at least order 3. global c: c =0 ' for colour-sequencing drama! global n: n =5 global order': order =3^n global p nomainwin WindowWidth =850 WindowHeight =780 open "Peano curve RC" for graphics_nsb as #wg #wg "trapclose quit" #wg "goto 5 745 ; down ; fill darkblue ; color cyan ; flush" #wg "font 48" '#wg "size "; n^2 for p =1 to 6 #wg "cls ; fill darkblue ; up ; goto 780 60 ; down ; color red ; backcolor darkblue" #wg "\" +str$( p) #wg "up ; goto 5 745 ; down" order =3^p call Peano 0, 0, order, 0, 0 timer 2000, [k] wait [k] timer 0 #wg "flush ; getbmp scr 1 1 850 780" bmpsave "scr", "screens/Peano" +str$( p) +".bmp" next p #wg "flush" wait sub quit h$ close #wg end end sub sub Peano x, y, lg, i1, i2 scan if lg = 1 then r$ =str$( int( 55 +200 *( ( 1 +cos( c /530)) /2))) g$ =str$( int( 55 +200 *( ( 1 +sin( c / 67)) /2))) b$ =str$( int( 55 +200 *( ( 1 +cos( c / 47)) /2))) #wg "color "; r$; " "; g$; " "; b$ '#wg "color cyan" xS =x *243 *3 /3^p yS =y *243 *3 /3^p #wg "goto "; int( 5 +xS); " "; 745 -int( yS) c =c +0.1 exit sub end if lg =lg / 3 call Peano x + (2 * i1 * lg), y + (2 * i1 * lg), lg, i1, i2 call Peano x + ((i1 - i2 + 1) * lg), y + ((i1 + i2) * lg), lg, i1, 1 - i2 call Peano x + lg, y + lg, lg, i1, 1 - i2 call Peano x + ((i1 + i2) * lg), y + ((i1 - i2 + 1) * lg), lg, 1 - i1, 1 - i2 call Peano x + (2 * i2 * lg), y + (2 * (1 - i2) * lg), lg, i1, i2 call Peano x + ((1 + i2 - i1) * lg), y + ((2 - i1 - i2) * lg), lg, i1, i2 call Peano x + (2 * (1 - i1) * lg), y + (2 * (1 - i1) * lg), lg, i1, i2 call Peano x + ((2 - i1 - i2) * lg), y + ((1 + i2 - i1) * lg), lg, 1 - i1, i2 call Peano x + (2 * (1 - i2) * lg), y + (2 * i2 * lg), lg, 1 - i1, i2 End Sub