U e5d ã @ sd d Z ddlT G dd„ deƒZG dd„ deƒZdd„ Zd d „ Zdd„ Ze d kr`eƒ Z ee ƒ eƒ dS )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 @ s e Zd Zdd„ ZdS )ÚDiscc C sP t j| ddd� | ¡ | d|d d¡ | |d dd|d ¡ | ¡ d S ) NZsquareF)ÚshapeZvisibleg ø?é g @r é )ÚTurtleÚ__init__ZpuZ shapesizeZ fillcolorÚst)ÚselfÚn© r ú0/usr/lib64/python3.8/turtledemo/minimal_hanoi.pyr s z Disc.__init__N)Ú__name__Ú __module__Ú__qualname__r r r r r r s r c @ s( e Zd ZdZdd„ Zdd„ Zdd„ ZdS ) ÚTowerz-Hanoi tower, a subclass of built-in type listc C s || _ dS )z-create an empty tower. x is x-position of pegN)Úx)r r r r r r s zTower.__init__c C s0 | | j¡ | ddt| ƒ ¡ | |¡ d S )Nijÿÿÿé" )Zsetxr ÚsetyÚlenÚappend©r Údr r r Úpush# s z Tower.pushc C s t | ¡}| d¡ |S )Né– )ÚlistÚpopr r r r r r ' s z Tower.popN)r r r Ú__doc__r r r r r r r r s r c C s> | dkr:t | d |||ƒ | | ¡ ¡ t | d |||ƒ d S )Nr r )Úhanoir r )r Zfrom_Zwith_Zto_r r r r , s r c C sJ t d dƒ tƒ z tdtttƒ tdddd� W n tk rD Y nX d S )NÚspaceé zpress STOP button to exitÚcenter©ZCourieré Zbold©ZalignZfont)ÚonkeyÚclearr Út1Út2Út3ÚwriteZ Terminatorr r r r Úplay2 s ÿ r+ c C sp t ƒ tƒ tddƒ tdƒatdƒatdƒatdddƒD ]} t t | ƒ¡ q:t ddd d � ttdƒ t ƒ dS ) Nr iÿÿÿiÿÿÿéú r éÿÿÿÿzpress spacebar to start gamer! r" r$ r Z EVENTLOOP)ZhtZpenupZgotor r' r( r) Úranger r r* r% r+ Zlisten)Úir r r Úmain<