ó
    •JÕi  ã                   óŠ   • S r SSK7   " S S\5      r " S S\5      rS rS rS	 r\	S
:X  a  \" 5       r
\" \
5        \" 5         gg)aÜ  turtle-example-suite:

         tdemo_minimal_hanoi.py

A minimal 'Towers of Hanoi' animation:
A tower of 6 discs is transferred from the
left to the right peg.

An imho quite elegant and concise
implementation using a tower class, which
is derived from the built-in type list.

Discs are turtles with shape "square", but
stretched to rectangles by shapesize()
 ---------------------------------------
       To exit press STOP button
 ---------------------------------------
é    )Ú*c                   ó   • \ rS rSrS rSrg)ÚDiscé   c                 óÒ   • [         R                  U SSS9  U R                  5         U R                  SUS-  S5        U R	                  US-  SSUS-  -
  5        U R                  5         g )	NÚsquareF)ÚshapeÚvisibleg      ø?é   g      @r   é   )ÚTurtleÚ__init__ÚpuÚ	shapesizeÚ	fillcolorÚst)ÚselfÚns     ÚLib\turtledemo\minimal_hanoi.pyr   ÚDisc.__init__   sV   € Ü�‰˜ H°eˆÑ<Ø�‰Œ	Ø�‰�s˜A˜c™E 1Ô%Ø�‰�q˜‘t˜Q  ! B¡$¡Ô'Ø�‰�	ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__r   r   r   r   r      s   † õr   r   c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚToweré   z-Hanoi tower, a subclass of built-in type listc                 ó   • Xl         g)z-create an empty tower. x is x-position of pegN©Úx)r   r#   s     r   r   ÚTower.__init__    s   € à�r   c                 óœ   • UR                  U R                  5        UR                  SS[        U 5      -  -   5        U R	                  U5        g )Nijÿÿÿé"   )Úsetxr#   ÚsetyÚlenÚappend©r   Úds     r   ÚpushÚ
Tower.push#   s5   € Ø	�‰ˆt�v‰vŒØ	�‰ˆt�B”s˜4“y‘LÑ Ô!Ø�‰�A�r   c                 óR   • [         R                  U 5      nUR                  S5        U$ )Né–   )ÚlistÚpopr(   r+   s     r   r2   Ú	Tower.pop'   s   € Ü�H‰H�T‹NˆØ	�‰ˆsŒØˆr   r"   N)	r   r   r   r   Ú__doc__r   r-   r2   r   r   r   r   r   r      s   † Ù3òòõr   r   c                 ó�   • U S:”  a@  [        U S-
  XU5        UR                  UR                  5       5        [        U S-
  X!U5        g g )Nr   r   )Úhanoir-   r2   )r   Úfrom_Úwith_Úto_s       r   r6   r6   ,   s@   € Øˆ1ƒuÜˆa�‰c�5˜uÔ%Ø�‰�—‘“ÔÜˆa�‰c�5 Õ%ð r   c                  óœ   • [        S S5        [        5          [        S[        [        [
        5        [        SSSS9  g ! [         a     g f = f)NÚspaceé   zpress STOP button to exitÚcenter©ÚCourieré   Úbold©ÚalignÚfont)ÚonkeyÚclearr6   Út1Út2Út3ÚwriteÚ
Terminatorr   r   r   ÚplayrL   2   sG   € Ü	ˆ$ˆwÔÜ	„GðÜˆa””RœÔÜÐ)ØÐ#:ó	<øäó Ùðús   ˜%> ¾
AÁ
Ac                  ó4  • [        5         [        5         [        SS5        [        S5      q[        S5      q[        S5      q[        SSS5       H!  n [        R                  [        U 5      5        M#     [        SSS	S
9  [        [        S5        [        5         g)Nr   iÿÿÿiÿÿÿéú   r<   éÿÿÿÿzpress spacebar to start gamer=   r>   rB   r;   Ú	EVENTLOOP)ÚhtÚpenupÚgotor   rG   rH   rI   Úranger-   r   rJ   rE   rL   Úlisten)Úis    r   ÚmainrW   <   su   € ä„DŒ%Œ'”4˜˜4”=Ü	ˆt‹€BÜ	ˆq‹€BÜ	ˆs‹€Bä�1�Q�rŽ]ˆÜ
�‰”�Q“Öñ ô 
Ð
(ØÐ6ò8ä	Œ$�ÔÜ
„HØr   Ú__main__N)r4   Úturtler   r   r1   r   r6   rL   rW   r   ÚmsgÚprintÚmainloopr   r   r   Ú<module>r]      sX   ðñô$ ôˆ6ô ôˆDô ò&òòð  ˆZÓÙ
‹&€CÙ	ˆ#„JÙ…Jð r   