Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 107

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 234

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 235

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 236

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 237

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 238

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 239
U i_0O@s2dZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z ddlmZdddd d d d d dg Zdddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-gZd.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|gOZd}d~gZeeeedgZdd/d2d?dLdPdTdZd\dadbdddedpdudxdygZdddddddddddddddddddddZddZddZz eeWnek redYnXGdddeZddZddZdZdddZGdddej Z!ee!ej"dGdddej#Z$ej"Z"Gddde%Z&GdddeZ'GdddeZ(Gdd d e%Z)Gddde%Z*Gddde&Z+Gddde%Z,Gddde%Z-Gddde%Z.Gdd d e-e,Z/e/Z0ddZ1Gddde+Z2Gdd d e/Z3e3Z4ddd}Z5ddZ6edZ7ze7dkrne6e7Wn@e8k rede7Yn"ek rede7YnXddZ9dd„Z:ddĄZ;dZZ?e@dkr.dd΄ZAddЄZBdd҄ZCeBeCeDdS)z-turtle 1.1b- - for Python 3.1 - 4. 5. 2009N)isfilesplitjoin)deepcopy) simpledialogScrolledCanvas TurtleScreenScreen RawTurtleTurtleRawPenPenShapeVec2Daddshapebgcolorbgpicbye clearscreen colormodedelay exitonclick getcanvas getshapeslistenmainloopmodenuminputonkey onkeypress onkeyrelease onscreenclickontimerregister_shape resetscreen screensizesetupsetworldcoordinates textinputtitletracerturtlesupdate window_height window_widthbackbackward begin_fill begin_polybkcircleclear clearstamp clearstampsclonecolordegreesdistancedotdownend_fillend_polyfd fillcolorfillingforwardget_polygetpen getscreen get_shapepoly getturtlegotoheading hideturtlehomehtisdown isvisibleleftltonclickondrag onreleasepdpenpencolorpendownpensizepenuppospositionpuradiansrightreset resizemodertseth setheadingsetpos setposition settiltangle setundobuffersetxsetyshape shapesizeshapetransform shearfactor showturtlespeedststamptilt tiltangletowards turtlesizeundoundobufferentriesupwidthwritexcorycorwrite_docstringdictdone Terminator?g?ii,standard? iclassicblacknoresizeTenglishturtlescreenzPython Turtle GraphicsF)rzheight canvwidth canvheight leftright topbottomrrrundobuffersizerkrWrAravisiblelanguage exampleturtle examplescreenr) using_IDLEc Cst|d}|}W5QRXi}|D]}|}|r&|drBq&z|d\}}Wn(tk r|td||fYq&YnX|}|}|dkrt|}n4zd|krt|}nt |}Wntk rYnX|||<q&|S)Nr#=zBad line in config-file %s: %s)TrueFalseNonez''z"".) open readlinesstrip startswithr ValueErrorprintevalfloatint)filenamefZcfglinescfgdictlinekeyvaluer%/opt/python38/lib/python3.8/turtle.py config_dicts0      rcCsd}i}i}t|rt|}d|kr0d|d}ztt\}}t||}Wntk rbd}YnXt|rtt|}t|t|dS)Nz turtle.cfgZ importconfigz turtle_%s.cfg)rrr__file__r Exception_CFGr,)rZ default_cfgZcfgdict1Zcfgdict2headtailZ cfg_file2rrr readconfigs     rz"No configfile read, reason unknownc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)rcCst|||fSN)tuple__new__)clsxyrrrrsz Vec2D.__new__cCs"t|d|d|d|dSNrrselfotherrrr__add__sz Vec2D.__add__cCsDt|tr*|d|d|d|dSt|d||d|Sr) isinstancerrrrr__mul__s  z Vec2D.__mul__cCs2t|tst|tr.t|d||d|SdSr)rrrrrrrr__rmul__szVec2D.__rmul__cCs"t|d|d|d|dSrrrrrr__sub__sz Vec2D.__sub__cCst|d |d Srrrrrr__neg__sz Vec2D.__neg__cCs|dd|dddS)Nrrrrrrrr__abs__ sz Vec2D.__abs__cCsjt|d |d}|tjd}t|t|}}t|d||d||d||d|S)Nrrf@)rmathpicossin)rangleZperpcsrrrrotate sz Vec2D.rotatecCs|d|dfSrrrrrr__getnewargs__szVec2D.__getnewargs__cCsd|S)Nz (%.2f,%.2f)rrrrr__repr__szVec2D.__repr__N) __name__ __module__ __qualname__rrrrrrrrrrrrrrrscCsTt|j}||D]}t||q|jD]\}}t|tjkr0|||<q0dSr) list __bases__reverse __methodDict__dict__itemstypetypes FunctionType)r_dictZbaseListZ_superrrrrrr s  rcCsi}t|||Sr)rkeys)rrrrr __methods*s rzTdef %(method)s(self, *args, **kw): return self.%(attribute)s.%(method)s(*args, **kw)rc Csi}t||i}t|}|D]B}|dddksd|dddksd||ksd||krXq"||||<q"|D]D\}} || d} t|trt||d} t| | t||| |qndS)Nr_)methodfunc)rZ attribute) rrrrrstr __stringBodyexecsetattr) Z fromClassZtoClassZtoPartZexcludeZ_dict_1rZmfcexrrdZ execStringrrr__forwardmethods4s  0    rc@s`eZdZdddZdddZd d Zd d Zd dZddZddZ ddZ ddZ ddZ dS)r^Xc Cs0tjj||||d||_|||_|_|||_|_d|_ tj ||||j tj dd|_ tj ||j jtjd|_tj ||j jd|_|j j|jj|jjd|jdd dd |jdd dd |j jd |d ddd d d d |jjd |d dd d d d d |jjd |d d dd d d d ||jd |jdS)Nrzrwhiter)rzrbgZreliefZ borderwidth)commandZorient)r)ZxscrollcommandZyscrollcommandrr)ZweightZminsizenewsZpadxZin_ZpadyrowcolumnZrowspanZ columnspanZstickyz )TKFrame__init__winfo_toplevelZ _rootwindowrzrrrrCanvasZSUNKEN_canvasZ ScrollbarZxviewZ HORIZONTALhscrollZyviewvscrollZ configuresetZ rowconfigureZcolumnconfiguregridr`bindonResize)rZmasterrzrrrrrrrOsN    zScrolledCanvas.__init__NcCs|r ||_|r||_|r||_|jj||j d|j d|jd|jdfd|jd|j|jd|j|jd|j|jd|j| dS)Nr)r scrollregionr) rrrrconfig xview_movetorz yview_movetor adjustScrollsrrrrrrrr`hs&zScrolledCanvas.resetc Cs|j}|j}|jd|j||j|jd|j||j||jks`||jkr|jjd|ddddddd|j jd|dddddddn|j |j dS)Nrrrrr) r winfo_width winfo_heightr rr rrrrZ grid_forget)rcwidthcheightrrrr zs&   zScrolledCanvas.adjustScrollscCs |dSr)r )reventrrrrszScrolledCanvas.onResizecGs |jj|Sr)rbboxrargsrrrrszScrolledCanvas.bboxcOs|jj||Sr)rcgetrrkwargsrrrrszScrolledCanvas.cgetcOs|jj||dSr)rr rrrrr szScrolledCanvas.configcOs|jj||dSr)rrrrrrrszScrolledCanvas.bindcOs|jj||dSr)runbindrrrrrszScrolledCanvas.unbindcCs|jdSr)r focus_forcerrrrrszScrolledCanvas.focus_force)rrrr)NNN) rrrrr`r rrrr rrrrrrrrIs  rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)_RootcCstj|dSr)rTkrrrrrrsz_Root.__init__cCs&t||||||_|jjddddS)NrZboth)expandfill)rrpack)rrzrrrrrr setupcanvassz_Root.setupcanvascCs|jSr)rrrrr _getcanvassz_Root._getcanvascCs|d||||fdS)Nz %dx%d%+d%+d)Zgeometry)rrzrstartxstartyrrr set_geometrysz_Root.set_geometrycCs|d|dS)NZWM_DELETE_WINDOW)Z wm_protocol)rdestroyrrr ondestroysz_Root.ondestroycCs|Sr)Zwinfo_screenwidthrrrr win_widthsz_Root.win_widthcCs|Sr)Zwinfo_screenheightrrrr win_heightsz_Root.win_heightN) rrrrr r!r$r&r'r(rrrrrsrc@s0eZdZeddZeddZddZddZdFd d Zd dZ dGddZ ddZ ddZ ddZ ddZdHddZddZdIddZdJd d!ZdKd"d#ZdLd$d%Zd&d'ZdMd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;ZdNdd?Z!d@dAZ"dBdCZ#dOdDdEZ$d S)PTurtleScreenBasecCstjddd}||S)Nrr)r PhotoImageblank)Zimgrrr _blankimageszTurtleScreenBase._blankimagecCs tj|dS)N)file)rr*)rrrr_imageszTurtleScreenBase._imagecCs||_t|tr"|jj}|jj}nJt|jd}t|jd}|jj| d| d|d|dfd||_||_d|_|_ dS)Nrzrrrr) cvrrrrrrr xscaleyscale)rr0whrrrrs  *zTurtleScreenBase.__init__cCs|jjddddS)N)rrrrrrrroutline)r0Zcreate_polygonrrrr _createpolyszTurtleScreenBase._createpolyNFc Csg}|D]*\}} |||j|| |jq|jj|f||dk r^|jj||d|dk rv|jj||d|dk r|jj||d|r|j|dS)Nr)r6rzappendr1r2r0coordsZ itemconfigureZ tag_raise) rZpolyitem coordlistrr6rztopclrrrrr _drawpolys  zTurtleScreenBase._drawpolyc Cs|jjddddddtjdS)Nrrr)rrzZcapstyle)r0Z create_linerZROUNDrrrr _createline szTurtleScreenBase._createlinec Cs|dk rNg}|D]*\}}|||j|| |jq|jj|f||dk rf|jj||d|dk r~|jj||d|r|j|dS)Nr8r9r:) rZlineitemr=rrzr>r?rrrrr _drawlines  zTurtleScreenBase._drawlinecCs|j|dSr)r0deleteritemrrr_delete)szTurtleScreenBase._deletecCs|jdSr)r0r,rrrr_update/szTurtleScreenBase._updatecCs|j|dSr)r0afterrrrrr_delay4szTurtleScreenBase._delaycCs4z|j|}d}Wntjk r.d}YnX|S)NTF)r0Z winfo_rgbrZTclError)rr9Zrgbokrrr_iscolorstring8s   zTurtleScreenBase._iscolorstringcCs0|dk r |jj|d|n |jdSdS)N)rr)r0r rGr)rr9rrr_bgcolorBs zTurtleScreenBase._bgcolorcCst|\}}||j}||j}dddd}|jj|d| |||||d} |j| \} } } } |j| | dfS)NswrZse)rPcenterr_r)textanchorrfont)r1r2r0Z create_textrr,)rr[txtalignrRrWrrrQrEZx0Zy0Zx1Zy1rrr_writeKs    zTurtleScreenBase._writercsDdkrj|d|n$fdd}j|d|||dS)N cs:j|jjj|j j}}||dSrr0canvasxrr1canvasyrr2rrrfunrrreventfunfsz+TurtleScreenBase._onclick..eventfunr0Z tag_unbindZtag_bindrrEr\numaddr]rr[r_onclick]szTurtleScreenBase._onclickcsDdkrj|d|n$fdd}j|d|||dS)Nzcs:j|jjj|j j}}||dSrrWrZr[rrr]xsz-TurtleScreenBase._onrelease..eventfunr^r_rr[r _onreleasels zTurtleScreenBase._onreleasecsDdkrj|d|n$fdd}j|d|||dS)NzcsTz:j|jjj|j j}}||Wntk rNYnXdSr)r0rXrr1rYrr2rrZr[rrr]sz*TurtleScreenBase._ondrag..eventfunr^r_rr[r_ondrags zTurtleScreenBase._ondragcs@dkrjd|n"fdd}jd|||dS)NrVcs:j|jjj|j j}}||dSrrWrZr[rrr]sz1TurtleScreenBase._onscreenclick..eventfunr0rr)rr\r`rar]rr[r_onscreenclicks zTurtleScreenBase._onscreenclickcs>dkr|jd|dnfdd}|jd||dS)Nzcs dSrrrr\rrr]sz0TurtleScreenBase._onkeyrelease..eventfunrerr\rr]rrhr _onkeyreleases zTurtleScreenBase._onkeyreleasecsndkr4|dkr |jddqj|jd|dn6fdd}|dkrX|jd|n|jd||dS)Nz z cs dSrrrgrhrrr]sz.TurtleScreenBase._onkeypress..eventfunrerirrhr _onkeypresss zTurtleScreenBase._onkeypresscCs|jdSr)r0rrrrr_listenszTurtleScreenBase._listencCs(|dkr|j|n|j||dSNr)r0Z after_idlerHrr\trrr_ontimerszTurtleScreenBase._ontimercCs|jjdd|dS)Nrimage)r0Z create_image)rrrrrr _createimageszTurtleScreenBase._createimagecCs<|\}}|j|||j| |jf|jj||ddSNrq)r0r<r1r2 itemconfig)rrEr[rrrrrrr _drawimages zTurtleScreenBase._drawimagecCs |jj||d|j|dSrt)r0ruZ tag_lower)rrErrrrr _setbgpicszTurtleScreenBase._setbgpiccCs |j|Sr)r0rrDrrr_typeszTurtleScreenBase._typecs.|j|fddtdtdD}|S)Ncs"g|]}||d fqS)rr.0ir?rr sz/TurtleScreenBase._pointlist..rr)r0r<rangelen)rrEplrr|r _pointlists zTurtleScreenBase._pointlistcCs|jj||||fddS)Nr/)r0r )rsrx1sry1srx2sry2rrr_setscrollregionsz!TurtleScreenBase._setscrollregionc Cs||j}|D]h}t|j|}g}|rd|dd\}}|||||||dd}q&|jj|f|qdSNr)r0Zfind_allrr<r;) rZ xscalefactorZ yscalefactorrrEZ coordinatesZ newcoordlistrrrrr_rescales zTurtleScreenBase._rescalecCszt|jts|j|jfS||kr6|kr6dkrJnn|jj|jjfS|dk rX||_|dk rf||_|j|||dSr)rr0rrrr`r rrr_resizes  "zTurtleScreenBase._resizecCs@|j}|dkr|jd}|j}|dkr8|jd}||fS)Nrrzr)r0rr)rrzrrrr _window_sizes    zTurtleScreenBase._window_sizecCs tdSr)rrrrrrr s zTurtleScreenBase.mainloopcCs t||Sr)rZ askstring)rr)promptrrrr(/s zTurtleScreenBase.textinputcCstj|||||dS)N)Z initialvalueZminvaluemaxvalue)rZaskfloat)rr)rdefaultZminvalZmaxvalrrrr>s zTurtleScreenBase.numinput)NNNF)NNNF)N)rN)rN)rN)rN)N)NNN)NNN)%rrr staticmethodr,r.rr7r@rArBrFrGrJrLrMrUrbrcrdrfrjrkrlrprsrvrwrxrrrrrrr(rrrrrr)sV              r)c@s eZdZdS)rNrrrrrrrrYsc@s eZdZdS)TurtleGraphicsErrorNrrrrrrbsrc@s eZdZdddZdddZdS)rNcCsz||_|dkr"t|trpt|}nN|dkrVt|trp|drpt|rpt |}n|dkrdg}n t d|||_ dS)Npolygonrr.gifcompoundzThere is no shape type %s) rxrrrrlowerendswithrrr.r_data)rZtype_datarrrrns     zShape.__init__cCs:|jdkrtd|j|dkr$|}|j|||gdS)Nrz Cannot add component to %s Shape)rxrrr;)rpolyrr6rrr addcomponent~s zShape.addcomponent)N)N)rrrrrrrrrrgs c@s@eZdZdddZdddZddZd d Zd d Zd dZdS)TbufferrcCs$||_dgg||_d|_d|_dS)NrF)bufsizebufferptrcumulate)rrrrrrszTbuffer.__init__NcCsD|dkr&t|jD]}dg|j|<qn||_dgg||_d|_dS)Nr)r~rrr)rrr{rrrr`s z Tbuffer.resetcCsF|jdkrB|js0|jd|j|_||j|j<n|j|j|dSr)rrrrr;rDrrrpushs  z Tbuffer.pushcCsJ|jdkrF|j|j}|dkr"dSdg|j|j<|jd|j|_|SdSr)rrrrDrrrpops  z Tbuffer.popcCs|j|jdgSr)rrcountrrrr nr_of_itemsszTbuffer.nr_of_itemscCst|jdt|jS)N )rrrrrrrrszTbuffer.__repr__)r)N) rrrrr`rrrrrrrrrs    rc@seZdZdZedededfddZddZdddZ ddZ ddZddZd?ddZd@ddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+ZdAd-d.Zd/d0ZdBd1d2ZdCd3d4ZdDd6d7ZdEd8d9ZdFd:d;ZeZe Z eZ!e Z"eZ#d S)GrTrrrc Cstddtddtddtddtddtddtd|d |_d d i|_t||||_||_td |_ g|_ | t j d kr|}|ddddd|ddddddS)Nr)rrrrr))r))rr)) )))rr))r)rr)rrrr)r)r)rr)rr)rr)rr)rr)rr)rr)rr)rr)r)Q#@Q@)Gz. @Q@)rr)rrr)Qr)Qr)Gz. r)Q#rr)rr)rr)rr)rr)gg$)rr)rr)rr)rr))rr)rr)rr)rr))rGz)rg'@)rr)rr)rrr)rrrr)Zarrowrr4ZsquareZtrianglerr+nopicrrdarwinZwmZ attributesrz-topmost10)rr,_shapes_bgpicsr)r_mode _delayvaluer _colormode_keysr5sysplatformrcall)rr0rrrZ rootwindowrrrrs&     zTurtleScreen.__init__cCstd|_td|_|d|d|_d|_d|_d|_g|_ | dd D]}| d|qP| d|j ddD]}|d|| d|qzdt_dS) Nrrallrrrrr)rr)rrrrFrs_bgpic _bgpicname_tracing_updatecounter_turtlesrrRrrrr _pen)rbtnrrrrr5s       zTurtleScreen.clearNcCs||dkr|jS|}|dkr*td|||_|dkrp||j d|j d|jd|jdd|_|_|dS)NrlogoworldzNo turtle-graphics-mode %s)rrrr) rrrrrrr1r2r`rrrrrr s  zTurtleScreen.modecCs|dkr|dt||}t||}|\}}||d|d|j|j} } |j||_|j||_||j} | |j} |j| } |j| }|| | | || |j| |j| | dS)Nr) rrrr%r1r2rrrrr,)rZllxZllyZurxZuryZxspanZyspanZwxZwyZ oldxscaleZ oldyscalerrrrrrrr',s            z TurtleScreen.setworldcoordinatescCsT|dkr2|dr(td||}qFtdnt|trFtd|}||j|<dS)Nrrrz;Bad arguments for register_shape. Use help(register_shape)r)rrrr.rrrr)rnamerkrrrr#Ss   zTurtleScreen.register_shapec Cst|dkr|d}t|trD||s0|dkr4|Stdt|z|\}}}Wn(ttfk rztdt|YnX|jdkrdd|||fD\}}}d|krd krnn.d|krd krnnd|krd ksntd t|d |||fS) Nrrrzbad color string: %sbad color arguments: %srcSsg|]}td|qSgo@roundrzrrrrr}sz*TurtleScreen._colorstr..bad color sequence: %s #%02x%02x%02x)rrrrLr TypeErrorrr)rr9rgbrrr _colorstrvs   FzTurtleScreen._colorstrcsxdsStdkr.fdddD}n4tdkrVfddddD}n td tfd d |DS) Nrrcs"g|]}t||ddqS)rrrrycstrrrr}sz'TurtleScreen._color..)rrrrcsg|]}dt|dqS)rr)rzr4rrrr}srzbad colorstring: %sc3s|]}|jdVqdS)rN)r)rzrrrr sz&TurtleScreen._color..)rrrr)rrr?r)rrr_colors    zTurtleScreen._colorcCs8|dkr|jS|dkr"t||_n|dkr4t||_dS)Nrr)rrr)rZcmoderrrrs  zTurtleScreen.colormodecCs$|jD]}||j|qdSr)r_setmoderr`)rrrrrr`s  zTurtleScreen.resetcCs|jSr)rrrrrr+szTurtleScreen.turtlescGs4|r||}nd}||}|dk r0||}|Sr)rrMrrrr9rrrrs   zTurtleScreen.bgcolorcCsB|dkr|jSt||_d|_|dk r0t||_|jr>|dSrm)rrrrr,)rnrrrrr*s  zTurtleScreen.tracercCs|dkr|jSt||_dSr)rrrIrrrrs zTurtleScreen.delaycCs<tjsdt_t|jdkr8|jd7_|j|j;_dS)NTrr)r_RUNNINGrrrrrrr _incrementudcs  zTurtleScreen._incrementudccCs<|j}d|_|D]}||q||_|dSNT)rr+ _update_data _drawturtlerG)rtracingrorrrr,s  zTurtleScreen.updatecCs |dSrmrrrrrr.szTurtleScreen.window_widthcCs |dSNrrrrrrr-%szTurtleScreen.window_heightcCs|jSr)r0rrrrr.s zTurtleScreen.getcanvascCst|jSr)sortedrrrrrrr:s zTurtleScreen.getshapesrcCs||||dSr)rfrr\rrarrrrREszTurtleScreen.onclickcCsF|dkr ||jkr6|j|n||jkr6|j||||dSr)rremover;rjrr\rrrrrVs    zTurtleScreen.onkeycCsN|dkr ||jkr>|j|n|dk r>||jkr>|j||||dSr)rrr;rkrrrrrts   zTurtleScreen.onkeypresscCs |dSr)rl)rxdummyydummyrrrrs zTurtleScreen.listenrcCs|||dSr)rprnrrrr"szTurtleScreen.ontimercCsF|dkr|jS||jkr(|||j|<||j|j|||_dSr)rrr.rwr)rZpicnamerrrrs  zTurtleScreen.bgpiccCs||||Sr)rr rrrr%szTurtleScreen.screensize)N)N)N)NN)N)rN)N)NN)r)N)NNN)$rrrrrrr5rr'r#rrrr`r+rr*rrr,r.r-rrrRrrrr"rr%r!r$rrr rrrrrsF ' "' #              c@sPeZdZeddeddedddZdZdZdZefddZd d Z dAd d Z ddZ dBddZ ddZ ddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(ZdCd)d*Zd+d,Zd-d.Zd/d0ZdDd1d2ZdEd3d4Zd5d6Zd7d8ZdFd9d:Z dGd;d<Z!dHd=d>Z"dId?d@Z#eZ$eZ%eZ&eZ'eZ(eZ)eZ*eZ+eZ,d S)J TNavigatorr)rrrrrrcCsB|j|_|j|_||_d|_|d|_||t |dSr) DEFAULT_ANGLEOFFSET _angleOffsetDEFAULT_ANGLEORIENT _angleOrientr undobufferr:rrr`rrrrrs zTNavigator.__init__cCstdd|_tj|j|_dS)Nr)r _positionrSTART_ORIENTATIONr_orientrrrrr`s zTNavigator.resetNcCsL|dkr|jS|dkrdS||_|dkr6d|_d|_n|jd|_d|_dS)Nr)rrrr@r)rrr _fullcirclerrrrrs zTNavigator._setmodecCs0||_d||_|jdkr"d|_n |d|_dS)Nihrrr )r  _degreesPerAUrrrZ fullcirclerrr_setDegreesPerAUs   zTNavigator._setDegreesPerAUv@cCs||dSr)rrrrrr:szTNavigator.degreescCs|dtjdSr)rrrrrrrr^4s zTNavigator.radianscCs|j|j|}||dSr)rr _goto)rr;Zenderrr_goBszTNavigator._gocCs||j9}|j||_dSr)r r rrrrrr_rotateGs zTNavigator._rotatecCs ||_dSrr)rendrrrrLszTNavigator._gotocCs||dSrrrr;rrrrCPszTNavigator.forwardcCs|| dSrrrrrrr/gszTNavigator.backcCs|| dSrrrrrrr_{szTNavigator.rightcCs||dSrrrrrrrPszTNavigator.leftcCs|jSrrrrrrr[s zTNavigator.poscCs |jdSrmrrrrrr|s zTNavigator.xcorcCs |jdSrrrrrrr}s zTNavigator.ycorcCs,|dkr|t|n|t||dSr)rr)rrrrrrrIszTNavigator.gotocCs|dd|ddSrm)rIrdrrrrrLs zTNavigator.homecCs|t||jddSrrrr)rrrrrriszTNavigator.setxcCs|t|jd|dSrmr)rrrrrrjszTNavigator.setycCsT|dk rt||}t|tr"|}n$t|tr6t|}nt|trF|j}t||jSr)rrrrrabs)rrrr[rrrr;$s     zTNavigator.distancecCs|dk rt||}t|tr"|}n$t|tr6t|}nt|trF|j}||j\}}tt||dtjdd}||j }|j |j ||j SNrrr) rrrrrrratan2rr rrr )rrrr[resultrrrruDs       zTNavigator.towardscCsJ|j\}}tt||dtjdd}||j}|j|j||jSr) r rrrrr rrr )rrrrrrrrJgs   zTNavigator.headingcCs>|||j}|j}||d||d}||dS)N@)rJrr r)rZto_anglerfullrrrrdvszTNavigator.setheadingc Csp|jr|jdgd|j_|}|dkr2|j}|dkrjt||j}dttdt|dd|}d||}d|}d |t |tj d |j }|d kr| | | }}}| } | } |d kr| d d n |d ||t|D].} |||||d ||q|| |d krR| | | |||jrld |j_dS) NseqTr g@gM@rrrrrF)rrrrpr rrminrrrr _tracerrJrr~r) rradiusZextentstepsrpZfracr3Zw2ltrZdlr{rrrr4s>" "          zTNavigator.circlecCsdSrr)rrrrrrpszTNavigator.speedcCsdSrr)rarrrrr$szTNavigator._tracercCsdSrr)rrrrrrJszTNavigator._delay)N)r)N)N)N)NN)r)NN)N)-rrrrr Z DEFAULT_MODErrrr`rrr:r^rrrrCr/r_rPr[r|r}rIrLrirjr;rurJrdr4rpr$rJr@r3r0rbrQr\rerfrcrrrrrsX     # # A   rc@seZdZedfddZededfddZd-d d Zd.d d Zd dZddZ ddZ d/ddZ ddZ ddZ ddZddZddZdd Zd0d!d"Zd1d$d%Zd2d'd(Zd)d*Zd+d,ZeZeZeZe Ze ZeZeZdS)3TPenracCs||_d|_t|dSr) _resizemoderr*_reset)rrarrrrsz TPen.__init__rWrAcCsFd|_d|_||_||_d|_d|_d|_d|_d|_d|_ d|_ dS)NrTr)rrr)rrrr) _pensize_shown _pencolor _fillcolor_drawing_speed_stretchfactor _shearfactor_tilt _shapetrafo _outlinewidth)rrWrArrrr,sz TPen._resetNcCs.|dkr|jS|}|dkr*|j|ddS)N)autouserrra)r+rrV)rZrmoderrrras zTPen.resizemodecCs|dkr|jS|j|ddS)N)rY)r-rV)rrzrrrrYsz TPen.pensizecCs|js dS|jdddS)NFrXr1rVrrrrrZ/s z TPen.penupcCs|jr dS|jdddS)NTr;r<rrrrrX=s z TPen.pendowncCs|jSr)r1rrrrrNKs z TPen.isdowncCsjdddddd}|dkr|jS||kr0||}n*d|krDdkrVnntt|}nd}|j|d dS) Nrrrrr)ZfastestfastnormalZslowZslowestrg%@)rp)r2rrrV)rrpZspeedsrrrrpZs z TPen.speedcGs|rht|}|dkr"|d}}n"|dkr4|\}}n|dkrD|}}||}||}|j||dn||j||jfSdS)Nrrrr)rWrA)rrrVrr/r0)rrr'ZpcolorZfcolorrrrr9s    z TPen.colorcGs:|r*||}||jkrdS|j|dn ||jSdS)N)rW)rr/rVrrrrrrWs   z TPen.pencolorcGs:|r*||}||jkrdS|j|dn ||jSdS)N)rA)rr0rVrrrrrrAs   zTPen.fillcolorcCs|jdddS)NTshownrVrrrrros zTPen.showturtlecCs|jdddS)NFr?rArrrrrK szTPen.hideturtlecCs|jSr)r.rrrrrO s zTPen.isvisiblec Ks|j|j|j|j|j|j|j|j|j|j |j d }|s>|s>|St |t rN|}ni}| |i}|D]}||||<qd|jr|jd|fd}d|kr|j|dkrd}d|krt |dtr||df|d<|j|dkrd}d|kr|j|dkrd}|r|d|kr&|d|_d|kr:|d|_d|krN|d|_d|krt |dtr|||df|d<|d|_d |kr|d |_d |kr|d |_d |kr|d }t |ttfr||f}||_d |kr|d |_d |kr|d |_ d|kr|d|_d|kr.|d|_ d |ksLd|ksLd |kr|j\} } |j} t|j t|j } } | | | | | | | | | | | | f|_|dS)N) r@rXrWrArYrpra stretchfactorrnr6rsrVFrXTrWrYrArprarBrnr6r@rs)r.r1r/r0r-r2r+r3r4r7r5rdictr,rrrr_newLinerrrrrr6rG)rrVZpendictZ_pdpZ_p_bufrZnewLineZsfZscxZscyZshfsacarrrrV s/                          zTPen.penTcCsdSrrrZusePosrrrrD sz TPen._newLineFcCsdSrr)rrZforcedrrrrG sz TPen._updatecCsdSrrrrrrr sz TPen._colorcCsdSrrrrrrr szTPen._colorstr)N)N)N)N)T)TF)rrrrrr,rarYrZrXrNrpr9rWrArorKrOrVrDrGrrrzryr]rUr=rqrMrrrrr*s8    &.%$    r*c@seZdZddZddZdS) _TurtleImagecCs||_d|_||dSr)rrx _setshape)rr shapeIndexrrrr sz_TurtleImage.__init__cs|j||_|jdkr*j|jkr2nndS|jdkrPj|jkrXnndS|jdkrp|jn |jdkr|jD]}|qj|j|_|jdkr|_nF|jdkrԈjdj|_n&|jdkrfddj|jD|_dS)Nrrr)rrrrr+csg|] }qSrr7rzrErrrr} sz*_TurtleImage._setshape..) rrKrxrrF_itemr7rsr)rrKrErrNrrJ s(""          z_TurtleImage._setshapeN)rrrrrJrrrrrI srIc@seZdZgZdedededfddZddZd d Zd d Zd dZ ddZ ddZ ddZ dlddZ ddZddZddZddZdmdd Zdnd!d"Zdod#d$Zd%d&Zdpd'd(Zd)d*Zdqd+d,Zd-d.Zd/d0Zdrd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdsdd?Z!d@dAZ"dBdCZ#dtdEdFZ$dGdHZ%dIdJZ&dKdLZ'dudMdNZ(dOdPZ)dvdSdTZ*dUdVZ+dWdXZ,dYdZZ-d[d\Z.d]d^Z/e/Z0dwd_d`Z1dxdbdcZ2dydddeZ3dzdfdgZ4dhdiZ5djdkZ6eZ7dS){r NrkrrcCs4t|tr||_n|t|tr:|tjkr2tj|||_nTt|ttfrtjD]}|j |krN||_qqNt||_tj|jn t d||j}t || t ||j|||_t|||_d|_d|_d|_|_||_d|_||_|jg|_|jg|_g|_||_t ||_!|"dS)Nzbad canvas argument %sF)#r_Screenrrr screensr;rrr0rrrrr*rrAdrawingLineItemrIr_poly _creatingPoly _fillitem _fillpathr._hidden_from_screencurrentLineItemr currentLiner stampItems_undobuffersizerrrG)rZcanvasrkrrrrrrr s@                 zRawTurtle.__init__cCs0t|t||||dSr)rr`r*r,_clearrrGrrrrr` s   zRawTurtle.resetcCs&|dks|dkrd|_n t||_dSrm)rr)rsizerrrrh szRawTurtle.setundobuffercCs|jdkrdS|jSrm)rrrrrrrx+ s zRawTurtle.undobufferentriescCsld|_|_|jD]}|j|q|j|_g|_|jrJ|j |j |jg|_| | |j dSr)rUrVrrrFrArXrYr1r;rr7rhr[rDrrrr\8 s    zRawTurtle._clearcCs||dSr)r\rGrrrrr5F s zRawTurtle.clearcCsF|j|jjdkrdSt|jdkrB|j|j|j|j|jdSr) rrrrrYrBrXr/r-rrrrrU s  zRawTurtle._update_datacCsx|j}|jdkrdS|jdkrD|||||jn0||jdkrt|D] }|q^|dSr) rrrrrGrJrrr+)rrrorrrrG] s     zRawTurtle._updatecCs|j||Sr)rr*)rflagrrrrr$o szRawTurtle._tracercCs |j|Sr)rrrrrrr szRawTurtle._colorcCs |j|Sr)rrrrrrr szRawTurtle._colorstrc Cst|tr|Sz|\}}}Wn(ttfk rDtdt|YnX|jjdkrldd|||fD\}}}d|krdkrnn.d|krdkrnnd|krdksntdt|d|||fS) NrrcSsg|]}td|qSrrrrrrr} sz!RawTurtle._cc..rrrr)rrrrrrr)rrrrrrrr_cc s  Fz RawTurtle._cccs|j||j|j}d|_d|_t|}|_||_|_t|jj|_j|j |jjj }|dkr |j_ nJ|dkr j dj|j_ n*|dkrʇfddj |jjjD|j_ |_||S)Nrrrr+rcsg|] }qSrrLrMrNrrr} sz#RawTurtle.clone..)rrDr1rrrIrKrr;rrxr7rOrsrrArXrG)rrqttyperrNrr8 s.      zRawTurtle.clonecCsB|dkr|jjS||jkr*td||j||dS)NzThere is no shape named %s)rrKrrrrJrG)rrrrrrk s   zRawTurtle.shapecCs||kr|krdkr8nn|j\}}|||jfS|dksH|dkrPtd|dk rt|dkrj||f}q||f}n|dk r|jd|f}n|j}|dkr|j}|jd||ddS)Nrz(stretch_wid/stretch_len must not be zeror9)rarBr6)r3r7rrV)rZ stretch_widZ stretch_lenr6rBrrrrl s$"    zRawTurtle.shapesizecCs |dkr|jS|jd|ddS)Nr9)rarn)r4rV)rZshearrrrrn szRawTurtle.shearfactorcCs<| |j|j}|tjddtj}|jd|ddS)Nrrr9)rars)r rrrrVrrrsrrrrg szRawTurtle.settiltanglecCs>|dkr0|j dtj|j}||j|jS||dS)Nr)r5rrrr r rgrbrrrrt3 szRawTurtle.tiltanglecCs|||dSr)rgrtrrrrrsM szRawTurtle.tiltcCs6||kr(|kr(|kr(dkr2nn|jS|j\}}}}|dk rL|}|dk rX|}|dk rd|}|dk rp|}||||dkrtd||||f|_t| |dtj} t| t| } } | || || || || || || || |f\} } }}| |f|_| ||_| |_ |j dddS)Nrz0Bad shape transform matrix: must not be singularrr9r:) r6rrrrrrr3r4r5rV)rt11t12t21t22Zm11Zm12Zm21Zm22ZalfarFrGZa11Za12Za21Za22rrrrm` s0,   zRawTurtle.shapetransformcs^|j|j\|j\tjj}dt||\fdd|DS)NrcsFg|]>\}}||j ||jfqSr)r1r2rzrrZe0Ze1Zp0Zp1rrrr} sz(RawTurtle._polytrafo..)rrr rr2r1r)rrerrhr _polytrafo s  zRawTurtle._polytrafocCs2|jj|jj}|jdkr.||j|jdkSdS)Nrr)rrrrKrx _getshapepolyr)rrkrrrrG s  zRawTurtle.get_shapepolyFcsx|jdks|r|j\n>|jdkrNtd|jd}|dd|f\n|jdkr\|Stfdd|DS) Nr9r8rg@rrc3s2|]*\}}||||fVqdSrrrgrcrdrerfrrr sz*RawTurtle._getshapepoly..)r+r6maxr-r)rrrr'rrlrrk s  zRawTurtle._getshapepolyc Cs|j}|j|jj}|j}|jj}|jr*|jdkr*|jdkr*d|_ |j }|dkr|j dkrfd}n|j dkrx|j }n|j }|||}|j|j}}|j|||||ddnt|d kr|||j|nZ|d krt||D]D\} \} }}||| d} |j| | |||||j ddqnx|j r6dS|dkrR||d d d nJ|d krv|||j|jd j n&|d kr|D]} || d d d qd|_ dS)NrFrrrr8Trr6rzr>rrrrrrrr+)rrrrKrxrOr.rrrWrr+r-r7rjrkr0r/r@rvrzipr_) rrrkraZtitemtshaper3fcocrErrrrr sR           zRawTurtle._drawturtlec CsT|j}|j|jj}|j}|j}|dkr|}|jdkr@d}n|jdkrR|j}n|j }| | |}|j |j }}|j|||||ddn|dkr|d}|||j|n|d kr4g}|D]} |} || qt|}t||D]D\} \} }}| | | d} |j| | |||||j ddq|j||jd |f|S) Nrrrr8Trnrrrrrr)rrrrKrxrr7r+r-r7rjrkr0r/r@rsrvrr;rrpr_rZrr) rrrkrarqstitemr3rrrselementrErrrrrr sH       zRawTurtle.stampcCs||jkrDt|tr,|D]}|j|qn |j||j|d|f}|j}||jkr`dS|j|}|j|||j kr|j d|j |_ |j |j d|j dgdS)Nrrr) rZrrrrFrrrindexrrinsert)rstampidZsubitemrEbufrvrrr _clearstamp s        zRawTurtle._clearstampcCs|||dSr)rzrG)rrxrrrr6 s zRawTurtle.clearstampcCs^|dkr|jdd}n&|dkr0|jd|}n|j|d}|D]}||qB|dSrm)rZrzrG)rrZtoDeleterErrrr7, s zRawTurtle.clearstampsc Cs|j|j|jt|jtf}|j}d|j|||j|j dd| |j|j ddff}|j rh|j ||j}|jrZ|jdkrZ||}|d|jd|d|jd}dt|ddd|j|j}|d|} td|D]R} | dkrd } nd } || | |_|jr2||j||jf|j|j| |q|jrZ|j|jd d |jd |jrn|j |t|jtr|j|||_|jr|j|t|j dkr||dS)Ngorrrrr皙?rTFrrrrrz*)r1r/r-rrVrrrrXrYrrrrr2rr1r2rr~rBrRrGr;rTrSrrD) rrgo_modesrZ undo_entrystartdiffdiffsqnhopsdeltarr>rrrrH sb      $$      zRawTurtle._gotocs|\}}}}|\}}}} |\} } } |jt|j|dkrDtd| |_| |_| ddgkrbd} n|} j| | | |dfdd|jD}|D]}||j |q|}|j rj dkr||}|d j d |dj d }dt|dd d |j |j }|d |}td|D]P}|dkr@d}nd}||||_|rr|j||jf||||q,|rj|jdd|d||_|jrt|jd kr|j|jgkrd|_d|_| r|jgkrd|_tdn|jdk r|j|dS)Nrz$undogoto: HALLO-DA-STIMMT-WAS-NICHT!rrr~cs&g|]}|kr|dkr|qS)r)rxryrrrrr} sz'RawTurtle._undogoto..rrrrr|rTFr}zUnwahrscheinlich in _undogoto!)rrrrrXrYrBrrFrr2rr1r2rr~rRrGrTrrSrrV)rentryoldnewrZcoodataZdrawingZpcZpsrBZcLIZcLrZusepcZtodeleter{rrrrrrr>rrr _undogoto} sl     $$          zRawTurtle._undogotocCs|jr|jd||jf||j9}|j|}|jj}|dkr|jdkrd|j}dtt ||}d||}t |D]}|j||_| q|||_| dS)Nrotrrg@r) rrr r rrrr2rrr~rG)rrZ neworientrZanglevelr&rrrrrr s      zRawTurtle._rotateTcCsnt|jdkrD|j|j|j|j|j|j|_|j |jn|jj|jddg|_|rj|j g|_dS)NrT)r>) rrYrrBrXr/r-rArr;rrHrrrrD s zRawTurtle._newLinecCs t|jtSr)rrVrrrrrrB s zRawTurtle.fillingcCsX|s"|j|_|j|j|jg|_||j rL|j d|jf| dS)N beginfill) rBrr7rUrr;rrVrDrrrGrrrrr1 s   zRawTurtle.begin_fillcCs^|rZt|jdkrF|jj|j|j|jd|jrF|jd|jfd|_|_| dS)Nrr8dofill) rBrrVrr@rUr0rrrGrrrrr> s  zRawTurtle.end_fillc Gs8|sNt|ttfr0||}|jt|jd}qr|j}|sr|jt|jd}n$|dkrh|jt|jd}||}t|jdr|j |j ||}|j ||j r|j d|fn|}|j r|j dgd|j _z>|dkr|||||||dW5||X|j r4d|j _dS) Nr_dotr<r!Tr8rF)rrrrr-rmr/hasattrrrrrr;rrrVrrarMrXrYrWrC)rr]r9rErVrrrr< s:        z RawTurtle.dotcCsB|j|j||||j\}}|j||jr>|jd|f|S)Nwri)rrUrr/rr;rr)rrSrTrRrErrrrrUG s zRawTurtle._writerPArialrr>cCs`|jr|jdgd|j_|t|||}|rN|\}}||||jr\d|j_dS)Nr!TF)rrrrUrrr[re)rargmoverTrRrrrrrrr{Q s  zRawTurtle.writecCs|jg|_d|_dSr)rrSrTrrrrr2n s zRawTurtle.begin_polycCs d|_dSNF)rTrrrrr?| s zRawTurtle.end_polycCs|jdk rt|jSdSr)rSrrrrrrD s zRawTurtle.get_polycCs|jSrrNrrrrrF szRawTurtle.getscreencCs|SrrrrrrrH szRawTurtle.getturtlecCs |j|Sr)rrrIrrrrJ szRawTurtle._delayrcCs"|j|jj||||dSr)rrbrrOrGrrrrrR szRawTurtle.onclickcCs"|j|jj||||dSr)rrcrrOrGrrrrrT szRawTurtle.onreleasecCs|j|jj|||dSr)rrdrrOrrrrrS szRawTurtle.ondragcCs,|jdkrdS|dkr@|\}}|| ||j|j}n|dkr\|d}||n|dkrp||n|dkr|d}|j||j |n|dkr|d}|jj |dddd nh|d kr|d}d|_ |_ ||jkr(|j||j |n$|d kr(t ||d|jdS) Nrrrrr{)rr<rrorr5rrV)rrr rr6rrrFrrr@rUrVr*rV)ractionrrZdegPAUdummyrtrErrr_undos<           zRawTurtle._undocCsl|jdkrdS|j}|d}|dd}|dkr\|rh|}||d|ddq4n |||dS)Nrrr!)rrr)rrErrrrrrw&s   zRawTurtle.undo)NN)N)NNN)N)N)NNNN)F)N)T)N)FrPr)N)rN)rN)rN)8rrrrQrrr`rhrxr\r5rrGr$rrr_r8rkrlrnrgrtrsrmrjrGrkrrrrzr6r7rrrrDrBr1r>r<rUr{r2r?rDrFrHrErJrRrTrSrrwrvrrrrr sp (  (  (   (  (- 5A  0        cCstjdkrtt_tjSr)r _screenrPrrrrr Is c@sfeZdZdZdZedZddZededededfd d Zd d Z d dZ ddZ ddZ dS)rPNr)cCstjdkr4tt_|_|jtj|j|jtjdkrtd}td}td}td}td}td}|j |||||j t_t |tj| ||||dS)Nrzrrrrr)rP_rootrr)_titler&_destroyrrr r!rrr&)rrzrrrrrrrrrWs   z_Screen.__init__rzrrrcCst|jdsdS|j}|j}t|trNd|krBdkrNnn||}|dkrb||d}t|trd|krdkrnn||}|dkr||d}|j|||||dS)Nr$rrr)rrr'r(rrr$r,)rrzrr"r#rNshrrrr&ms   " " z _Screen.setupcCs tjdk rtj||t_dSr)rPrr)r)rZ titlestringrrrr)s  z _Screen.titlecCs:|j}|tjkr(dt_dt_dt_dt_dt_|dSr) rrPr rrrrrr%)rrootrrrrs z_Screen._destroycCs |dSr)rrrrrrsz _Screen.byecsNfdd}|tdr"dSz tWntk rHtdYnXdS)Ncs dSr)r)rrrrrexitGracefullysz+_Screen.exitonclick..exitGracefullyrr)rRrrAttributeErrorexit)rrrrrrs   z_Screen.exitonclick) rrrrrrrrr&r)rrrrrrrrPQs  ( rPc@s0eZdZdZdZedededfddZdS)r NrkrrcCs,tjdkrtt_tj|tj|||ddS)N)rkrr)r rr r r)rrkrrrrrrs  zTurtle.__init__)rrrrrrrrrrrr s turtle_docstringdictc Csi}tD]}d|}t|j||<qtD]}d|}t|j||<q(td|d}tdd|D}|d|ddD](}|d t||d ||q||d}|d t||d |||d |W5QRXdS) Nz_Screen.zTurtle.z%s.pyr3css$|]}|ddtkr|VqdS)rrN)r _alias_listrrrrrsz&write_docstringdict..zdocsdict = { rz%s : z """%s """, z """%s """ z} ) _tg_screen_functionsr__doc___tg_turtle_functionsrrr{reprclose)rdocsdict methodnamerrrrrrr~s$   c Cs`dd|i}t|}|j}|D]8}z||t|_Wq"tk rXtd|Yq"Xq"dS)Nz!turtle_docstringdict_%(language)srzBad docstring-entry: %s)r __import__rrrrr)langmodnamemodulerrrrrread_docstringssrrzCannot find docsdict forz;Unknown Error when trying to import %s-docstring-dictionaryc Csd}}t|j\}}}|dd}|dd}|jp:g}dd|D}dgt|t||}ddt||D} |dk r| d||d||dk r| d||d|d| }d |}d|}d |}||fS) NrrcSsg|]}d|fqS)z=%rr)rzrrrrr};sz"getmethparlist..cSsg|]\}}||qSrr)rzrZdfltrrrr}=s*z**z, z(%s))inspectZgetargs__code__ __defaults__rrpr;r) obZdefTextZcallTextrZvarargsZvarkwZitems2ZrealArgsdefaultsZitems1rrrgetmethparlist+s&     rcCsJddl}|dkrdStd}|d|d}|d|}|d|}|S)Nrr%s.r \(.+ %s\)::rerreplacecompilesub)docstrrZ turtlename newdocstrparexprrr_turtle_docreviseJs rcCsJddl}|dkrdStd}|d|d}|d|}|d|}|S)Nrrrrrrr)rrZ screennamerrrrr_screen_docreviseVs rardef {name}{paramslist}: if {obj} is None: if not TurtleScreen._RUNNING: TurtleScreen._RUNNING = True raise Terminator {obj} = {init} try: return {obj}.{name}{argslist} except TK.TclError: if not TurtleScreen._RUNNING: TurtleScreen._RUNNING = True raise Terminator raise c Csl|D]b}t||}t|\}}|dkr4td||qtj|||||d} t| t||jt|_qdS)Nrz>>>>>>)objinitrZ paramslistZargslist)getattrrr __func_bodyformatrglobalsr) Z functionsrrrZ docreviserrZpl1Zpl2Zdefstrrrr_make_global_funcsvs     rzTurtle._screenzScreen()z Turtle._penzTurtle()__main__cCstrtntdSr)rNr]rUrrrr switchpensrcCslttdttdttdtdD]Z}|dkrDttdD]}tdt dqL|dkrxt dt ttd tq2td t d td tt dtdt dtdt d tt dd t dd t dtdD]$}tdt dtdt dqtdttdD]&}tdt dtdt dq:t dS)NTdrrrrZZmaroonrrrFZ startstartrredr)r`r*ryr0r=rzr~r1rCrPr9r>r_r{)r{rrrrdemo1sX         rcCsBtdttdttddtddd}tdtdD]}tt |dqBt dt rnt q`t tdtd d}td tdtd td d D]p}|dkrttd d|dd|tdD]}t|tdqt|d7}tdttddqtdttdtdttddtdttdD](}t ddtdtdtdq`ttdttdttdt}|dt}|d|d| |d|d||dd|d||d|dd|d|dtt|d}||dkr|d|d ||||d|d!dkr| | t|d7}qZ|j d"d#d$d%|d&|dd'd(}t!"dt r| | q|d|j d)d*d+|#|ddS),Nrrrrrrzwait a moment...rZgreenrrrx FrrZyellowr2rr8i(rZblueZorangerg @g333333?rzCAUGHT! )rrboldr_)rRrTrcSsttdSr)rr)rrrrrbabaszdemo2..babaz Click me!)ZCourierrr)rR)$rprqrYrdrur;rbr~rr4r{rxrwr`rQrrWr1rAr@r>r]rUr9rkrHrar rPryrIr=rrtimesleeprR)r%rZlaenger{Ztrirrrrrrdemo2s                             r)r)r)EZ_vertkinterrrrrrrZos.pathrrrcopyrrZ _tg_classesrrZ _tg_utilities__all__rrrrrrrrrrrrrrrrrobjectr)rrrrrrr*rIr r r rPr r r~rZ _LANGUAGE ImportErrorrrrrrrrrrrrrrrrrgs      4  c /&.O} "      5c