[MWForum]Re: maze

Mike Sandy mwforum@lists.mathcats.com
Tue, 3 Dec 2002 12:39:00 -0000


>Daniel wrote:
>> the paths are very short.


Changing the tile produces a better
version.

to block :d :n   ;d is tile length, n is the number of tiles per side
 cg ht pu
 let[xc  :d * :n / -2
     yc  :d * :n / -2]
 setpos list :xc :yc
 dotimes 
   [i :n]
   [dotimes 
     [j :n]
     [tile :d random 2
      setpos list :xc + (:j + 1) * :d ycor
     ]
    setpos list :xc :yc + (:i + 1) * :d
   ]
 setpos list :xc - :d / 2 :yc - :d / 2
 rt 90 pd
 repeat 4
   [fd :d * :n lt 90]
 pu
end

to tile :d :k
 let[x xcor y ycor
     d  :d / 2
     k 1 - :k * 2]
 setpos list  :x + :k * :d :y 
 pd setpos list  :x  :y + :d pu
 setpos list  :x :y - :d
 pd setpos list :x - :k * :d :y pu
 setpos list :x :y
end

Try block 10 40

Mike