
   M&uj                       d Z ddlmZmZmZmZ ddlmZ ddlm	Z
 d Zd Zd ZddZd	 Zd
 Zd Zd Zd Zedk(  r e         e        yy)a4       turtlegraphics-example-suite:

             tdemo_forest.py

Displays a 'forest' of 3 breadth-first-trees
similar to the one in tree.
For further remarks see tree.py

This example is a 'breadth-first'-rewrite of
a Logo program written by Erich Neuwirth. See
http://homepage.univie.ac.at/erich.neuwirth/
    )Turtle	colormodetracermainloop	randrange)perf_counterc                 "    t        |  | dz         S )N   r   )ns    //tmp/python/lib/python3.12/turtledemo/forest.py	symRandomr      s    aR!    c           
      r    | D cg c]$  \  }}|t        |      z   |dt        |      z  z  f& c}}S c c}}w )Ng)\(?)r   )
branchlist	angledistsizedistangle
sizefactors        r   	randomizer      sI     /9;*
 Ii((y2224 ; ; ;s   )3c                     t        |      D ]3  }| j                  t        |             | j                  d|z  |z         5 y )Ng      ?)rangeleftr   forward)tdistancepartsr   is        r   randomfdr      s6    5\	y#$			C(NE)+ r   c           	   #   J  K   |dkD  rg }g }t        t        | |            D ]  \  }	}
|	j                  ||z         |	j                  ddd|z  z
  t	        d      z   z
  dd|z  z
  t	        d      z   d       |	j                          t        |	|||       d |
D ]b  \  }}|	j                  |       |j                  |	j                                |j                  t        |
||             |	j                  |       d  t        ||z  |dz
  ||||      D ]  }d   y y w)Nr               r   )listzippensizepencolorr   pendownr   r   appendcloner   righttree)tlistsizelevelwidthfactorbranchlistsr   r   lstbrsr   r   r   r   xs                 r   r-   r-      s     qy!#eK"89MAzIItk)+JJsR%Z/)B-?@b5j(9R=8 IIKQeY0G%/!zu

1779%

9ZHEF	 &0 : c4
?E!G[#+AJ+! s   D!D#c                    t        d       | j                          | j                  d       | j                          | j	                  d       | j                          | j                  ||       | j                          y )Nr!   r   Z   )r   resetspeed
hideturtler   penupsetposr)   )r   r5   ys      r   startr>   7   sP    cNGGIGGAJLLNFF2JGGIHHQqMIIKr   c                 f    |j                          t        |dd       t        |gd| dg dg      }|S )N   i0P   皙?)-   gGz?)r   ?gQ?r:   r>   r-   r0   penr   s      r   doit1rK   A   s5    NN	#r4seR&I%JLAHr   c                 f    |j                          t        |dd       t        |gd| dddgg      }|S )Niyi~x   rB   rC   rF   rH   rI   s      r   doit2rN   G   s9    NN	#tTseS%J'@&ACAHr   c                 f    |j                          t        |dd       t        |gd| dg dg      }|S )N   id   rB   ))rD   gffffff?)r   g
ףp=
?)rG   rE   rH   rI   s      r   doit3rR   M   s5    NN	#sCseS%'I&JLAHr   c                     t               } | j                          t        dd       t        dt        d            }t	        dt        d            }t        dt        d            }t               }	 d}|||fD ]  }	 |j                           |dk(  rn$t        dd	       t               }d
||z
  z  S #  |dz  }Y DxY w)NK   r      r   )undobuffersize         
   zruntime: %.2f sec.)r   htr   rK   rN   rR   clock__next__)pusr   adonebs          r   mainrd   T   s    ADDF
2aLaq)*Aaq)*Aaq)*AA
1QA

 
 19  1RLA1Q3''	s   ?B66B?__main__N)rZ   rX   )__doc__turtler   r   r   r   randomr   timer	   r\   r   r   r   r-   r>   rK   rN   rR   rd   __name__ r   r   <module>rl      s^    7 6  &;
,
0(, zFJ r   