Your IP : 216.73.216.213
�
��f c @ sa d Z d d l m Z m Z d d � Z Gd d � d � Z d d � Z e d k r] e � n d
S( uV
Animated Towers of Hanoi using Tk with optional bitmap file in background.
Usage: hanoi.py [n [bitmapfile]]
n is the number of pieces to animate; default is 4, maximum 15.
The bitmap file can be any X11 bitmap file (look in /usr/include/X11/bitmaps for
samples); it is displayed as the background of the animation. Default is no
bitmap.
i ( u Tku Canvasc C sX | d k r d St | d | | | | � | | | | � t | d | | | | � d S( Ni i ( u hanoi( u nu au bu cu report( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu hanoi s
u hanoic B s; | Ee Z d Z d d d � Z d d � Z d d � Z d S( u Tkhanoic C s� | | _ t � | _ } t | � | _ } | j � | j | d � | j | d � } } | r� | j | d | d d | d d �| _ n d } | d } | d } | | d | d d }
} |
| | | } }
g | _ | j
|
| | |
d
d �} | j j | � |
| | | }
} | j
|
| | |
d
d �} | j j | � |
| | | }
} | j
|
| | |
d
d �} | j j | � | j j � | d } | d d } d | } g g g g | _
i | _ | | d |
| d }
} |
| | | } }
| | d t d | d � } x� t | d
d � D]� } | j
|
| | |
d
d �} | | j | <| j
d
j | � |
| | | }
} | | d |
| d } }
| j j � | j j d � qFWd S( Nu widthu heighti u bitmapu
foregroundu bluei
i i u fillu blacki i u redi i����( u nu Tku tku Canvasu canvasu packu getintu
create_bitmapu bitmapu pegsu create_rectangleu appendu updateu pegstateu piecesu maxu rangeu after( u selfu nu bitmapu tku cu widthu heightu pegwidthu pegheightu pegdistu x1u y1u x2u y2u pu pieceheightu
maxpiecewidthu
minpiecewidthu dxu i( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu __init__ sP
'
u Tkhanoi.__init__c C s� x� t | j d d d | j � t | j d d d | j � t | j d d d | j � t | j d d d | j � t | j d d d | j � t | j d d d | j � q d S( Ni i i ( u hanoiu nu report( u self( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu runO s u Tkhanoi.runc C s� | j | d | k r t � n | j | d =| j | } | j } | j | j | � \ } } } } xN | j | � \ }
} } }
|
| k r� Pn | j | d d � | j j � qi | j | j | � \ } } } } | | d } x~ | j | � \ }
} } }
|
| d } | | k r#Pn | | k rE| j | d d � n | j | d d � | j j � q� |
| } | | t | j | � d } xN | j | � \ }
} } }
|
| k r�Pn | j | d d � | j j � q�| j | j
| � d S( Ni i i i����i����i����i����( u pegstateu RuntimeErroru piecesu canvasu bboxu pegsu moveu tku updateu lenu append( u selfu iu au bu pu cu ax1u ay1u ax2u ay2u x1u y1u x2u y2u bx1u by1u bx2u by2u newcenteru centeru pieceheightu newbottom( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu reportY s@
" "
u Tkhanoi.reportN( u __name__u
__module__u __qualname__u Noneu __init__u runu report( u
__locals__( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu Tkhanoi s 1
u Tkhanoic C s� d d l } | j d d � r5 t | j d � } n d } | j d d � r� | j d } | d d k r~ | d d � } q� d | } n d } t | | � } | j � d S( Ni i i i u @( u sysu argvu intu Noneu Tkhanoiu run( u sysu nu bitmapu h( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu main s
u mainu __main__N( u __doc__u tkinteru Tku Canvasu hanoiu Tkhanoiu mainu __name__( ( ( u5 /opt/alt/python33/lib64/python3.3/Tools/demo/hanoi.pyu <module>
s d