white:=0xff|ff|ff; black:=0; w:=h:=100; bitmap:=PPM(w,h,white); x:=w/2; y:=h/2; dir:=0; // start in middle facing east do{ if(bitmap[x,y]){ dir-=1; bitmap[x,y]=black; } // white-->black, turn left else { dir+=1; bitmap[x,y]=white; } // black-->white, turn right switch(dir.bitAnd(3)){ // dir is always <0 case(0){ x+=1; } // east case(1){ y-=1; } // south case(2){ x-=1; } // west case(3){ y+=1; } // north } }while((0<=x