Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/turtledemo/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/turtledemo/__pycache__/nim.cpython-312.opt-1.pyc

�

&Μgq��D�dZddlZddlZddlZdZdZdZdZedzZeedzd	zedzd
zzzZ	dZ
dZd
Zd�Z
d�Zd�ZGd�de�ZGd�dej$�ZGd�de�ZGd�de�ZGd�de�Zd�Zedk(re�ej2�yy)z�      turtle-example-suite:

            tdemo_nim.py

Play nim against the computer. The player
who takes the last stick is the winner.

Implements the model-view-controller
design pattern.
�Ni�i�������)�?r	r)���r)rrr
c�>�tjtt�S�N)�random�randint�	MINSTICKS�	MAXSTICKS���+/usr/local/lib/python3.12/turtledemo/nim.py�	randomrowrs���>�>�)�Y�/�/rc��|d|dz|dz}|dk(rt|�Std�D]}|||z}|||ks�||f}|cSy)Nr�r�)�
randommove�range)�state�xored�z�s�moves     r�computerzugr !sd���!�H�u�Q�x��%��(�*�E���z��%� � �
�1�X���!�H�u�����a��=��q�6�D��K�	rc��t|�}	tjdd�}|||dkDkDrn�#tj|dkD||dz
�}||fS)Nrrr)�maxrr)r�mr�rands    rrr+s]���E�
�A�
��N�N�1�Q�����8�q�1�u�����>�>�!�a�%��q��!��,�D��d�7�Nrc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�NimModelc��||_yr
)�game)�selfr(s  r�__init__zNimModel.__init__6s	����	rc�X�|jjtjtjfvryt�t�t�g|_d|_d|_|jjj�tj|j_y)Nr)r(r�Nim�CREATED�OVERr�sticks�player�winner�view�setup�RUNNING�r)s rr3zNimModel.setup9sg���9�9�?�?�3�;�;����"9�9�� �{�I�K���=����������	�	�������+�+��	�	�rc��|j|}||j|<|jjj||||j�|j�rUtj|j_|j|_	|jjj�y|jdk(r9d|_t|j�\}}|j||�d|_yy)Nrr)
r/r(r2�notify_mover0�	game_overr,r.rr1�notify_overr r)r)�row�col�	maxspaltes    rrz
NimModel.moveBs����K�K��$�	�����C���	�	���"�"�3��Y����D��>�>��!�h�h�D�I�I�O��+�+�D�K��I�I�N�N�&�&�(�
�[�[�A�
��D�K�"�4�;�;�/�H�C���I�I�c�3���D�K�	rc�$�|jgd�k(S)N)rrr)r/r5s rr8zNimModel.game_overPs���{�{�i�'�'rc�N�|j||kry|j||�yr
)r/r�r)r:r;s   rr7zNimModel.notify_moveSs$���;�;�s��s�"���	�	�#�s�rN)�__name__�
__module__�__qualname__r*r3rr8r7rrrr&r&5s���&��(�rr&c��eZdZd�Zd�Zd�Zy)�Stickc��tjj|d��||_||_||_|j
||�\}}|jd�|jtdztdz�|jd�|j�|j||�|jd�|j�y)NF��visible�squareg$@g4@r�white)�turtle�Turtler*r:r;r(�coords�shape�	shapesize�HUNIT�WUNIT�speed�pu�goto�color�
showturtle)r)r:r;r(�x�ys      rr*zStick.__init__Zs����
�
���t�U��3���������	��{�{�3��$���1��
�
�8�����u�T�z�5��:�.��
�
�1�
����	��	�	�!�A���
�
�7�����rc��t|d�\}}dd|zzd|zztz}dd|zztz}|tdzz
tdzztdz|z
tdzz
fS)Nrrrr)�divmodrPrO�SCREENWIDTH�SCREENHEIGHT)r)r:r;�packet�	remainderrVrWs       rrLzStick.coordshsq��"�3��N���	�
��f��_�q�9�}�
,��5��
��S��[�E�!���;�!�#�#�e�q�j�0�,�!�2C�a�2G�%�ST�*�2T�T�Trc���|jjtjk7ry|jjj|j|j�yr
)r(rr,r4�
controllerr7r:r;)r)rVrWs   r�makemovezStick.makemovens;���9�9�?�?�c�k�k�)���	�	���(�(����4�8�8�<rN)r@rArBr*rLr`rrrrDrDYs���U�=rrDc�2�eZdZd�Zdd�Zd�Zd�Zd�Zd�Zy)	�NimViewc�~�||_|j|_|j|_|jjd�|jj	d�|jjd�t
jd��|_|jj�|jjd�i|_td�D]2}tt�D]}t|||�|j||f<� �4|jd�|jj	d�y)	Nr
F)��rdr
rFrrz... a moment please ...T)r(�screen�model�	colormode�tracer�bgcolorrJrK�writerrRrQr/rrrD�display)r)r(r:r;s    rr*zNimView.__init__us�����	��k�k����Z�Z��
������c�"������5�!������O�,��m�m�E�2��������������!�������8�C��Y�'��*/��S�$�*?����S�#�J�'�(��	
���.�/������4� rNc�(�|jjd�|jj�|�`|jj	dt
dzdz�|jj
d�|jj|dd��|jj	dt
dzd	z�|jj
d
�|jj|dd��|jjd�y)
NFrr�0�red�center)�Courier��bold)�align�font��black)rp�rrT)rerhrj�clearrSr[�pencolor�write)r)�msg1�msg2s   rrkzNimView.display�s��������5�!����������K�K���Q�,��!� 3�b� 8�9��K�K� � ��'��K�K���d�(�9N��O�������l�N�a�/�"�4�5������W�%������$�h�5J��K������4� rc��|jjd�td�D]M}t|jj|�D]&}|j||fjt��(�Otd�D]N}t|jj|t�D]"}|j||fjd��$�P|jd�|jjd�y)NFrrI�*Your turn! Click leftmost stick to remove.T)	rerhrrfr/rT�SCOLORrrkr?s   rr3z
NimView.setup�s��������5�!���8�C��T�Z�Z�.�.�s�3�4�����S�#�J�'�-�-�f�5�5����8�C��T�Z�Z�.�.�s�3�Y�?�����S�#�J�'�-�-�g�6�@��	
���A�B������4� rc��|dk(r8t}t||�D]"}|j||fj|��$y|j	d�tjd�|j	d�t}t|dz
|dz
d�D]7}tjd�|j||fj|��9|j	d�y)	Nrz ... thinking ...         g�?z ... thinking ... aaah ...r���g�������?r~)�HCOLORrr/rTrk�time�sleep�COLOR)r)r:r;r<r0�farbers       rr7zNimView.notify_move�s����Q�;��E��3�	�*�����S�!�H�%�+�+�E�2�+�
�L�L�5�6��J�J�s�O��L�L�5�6��E��9�Q�;��A��r�2���
�
�3�����S�!�H�%�+�+�E�2�3�
�L�L�E�Frc�x�|jjjdk(rd}nd}|jd|�y)NrzCongrats. You're the winner!!!z"Sorry, the computer is the winner.z2To play again press space bar. To leave press ESC.)r(rfr1rk)r)r|s  rr9zNimView.notify_over�s1���9�9�?�?�!�!�Q�&�3�D�7�D����I�4�Prc��|jjtjk(r|jj�yyr
)r(rr,r.rerxr5s rrxz
NimView.clear�s+���9�9�?�?�c�h�h�&��K�K����'rr
)	r@rArBr*rkr3r7r9rxrrrrbrbts"��!�"
!�	!�
G�Q� rrbc��eZdZd�Zd�Zy)�
NimControllerc�l�||_|jj|_d|_|jj	�D]}|j|j��|jjj|jjjd�|jjj|jjjd�|jjjd�|jjj�y)NF�space�EscapezPress space bar to start game)r(r2r/�BUSY�values�onclickr`re�onkeyrfr3rxrk�listen)r)r(�sticks   rr*zNimController.__init__�s�����	��i�i�&�&�����	��[�[�'�'�)�E��M�M�%�.�.�)�*��	�	�����t�y�y���4�4�g�>��	�	�����t�y�y�~�~�3�3�X�>��	�	�����>�?��	�	�����!rc��|jryd|_|jjj||�d|_y)NTF)r�r(rfr7r?s   rr7zNimController.notify_move�s2���9�9����	��	�	���#�#�C��-���	rN)r@rArBr*r7rrrr�r��s��	"�rr�c��eZdZdZdZdZd�Zy)r,rrrc��tj|_||_t	|�|_t
|�|_t|�|_	yr
)
r,r-rrer&rfrbr2r�r_)r)res  rr*zNim.__init__�s6���[�[��
�����d�^��
��D�M��	�'��-��rN)r@rArBr-r4r.r*rrrr,r,�s���G��G��D�.rr,c��tj�}|jd�|jtt
�t
|�}y)N�standard�	EVENTLOOP)rJ�Screen�moder3rZr[r,)�
mainscreen�nims  r�mainr��s5������J��O�O�J�����[�,�/�

�j�/�C�r�__main__)�__doc__rJrr�rZr[rrrOrPrr�r�rr r�objectr&rKrDrbr�r,r�r@�mainlooprrr�<module>r�s���	��
������
�	��	�������a��2�-��Q��!�0C�C�D��	��	����0���!�v�!�H=�F�M�M�=�6A �f�A �H�F��*	.�&�	.���z���F��F�O�O��r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists