OwlCyberSecurity - MANAGER
Edit File: nim.cpython-38.opt-1.pyc
U ����e5dq����������������������@���s����d�Z�ddlZddlZddlZdZdZdZdZed�Zeed�d �ed�d ���Z dZ dZd Zdd��Z dd��Zdd��ZG�dd��de�ZG�dd��dej�ZG�dd��de�ZG�dd��de�ZG�dd��de�Zdd��Zed kr�e���e����dS�)!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 ���)r ���r ���r ���c�������������������C���s���t��tt�S��N)�random�randint� MINSTICKS� MAXSTICKS��r���r����&/usr/lib64/python3.8/turtledemo/nim.py� randomrow���s����r���c�����������������C���sb���|�d�|�d�A�|�d�A�}|dkr(t�|��S�td�D�],}|�|�|A�}||�|�kr0||f}|��S�q0d�S�)Nr�������r�������)� randommove�range)�stateZxored�z�s�mover���r���r����computerzug!���s����r���c�����������������C���sH���t�|��}t�dd�}|�|�|dkkrq(qt�|dk|�|�d��}||fS�)Nr���r���r���)�maxr���r ���)r����mr���Zrandr���r���r���r���+���s����r���c�������������������@���s4���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��ZdS�)�NimModelc�����������������C���s ���||�_�d�S�r���)�game)�selfr���r���r���r����__init__6���s����zNimModel.__init__c�����������������C���sP���|�j�jtjtjfkrd�S�t��t��t��g|�_d|�_d�|�_|�j�j � ���tj|�j�_d�S��Nr���)r���r����Nim�CREATED�OVERr����sticks�player�winner�view�setup�RUNNING�r ���r���r���r���r*���9���s����zNimModel.setupc�����������������C���s����|�j�|�}||�j�|<�|�jj�||||�j��|����rRtj|�j_|�j|�_ |�jj� ���n0|�jdkr�d|�_t|�j��\}}|��||��d|�_d�S�)Nr���r���) r&���r���r)����notify_mover'���� game_overr#���r%���r���r(����notify_overr���r���)r ����row�col� maxspalter���r���r���r���B���s���� z NimModel.movec�����������������C���s���|�j�dddgkS�r"���)r&���r,���r���r���r���r.���P���s����zNimModel.game_overc�����������������C���s"���|�j�|�|krd�S�|��||��d�S�r���)r&���r����r ���r0���r1���r���r���r���r-���S���s����zNimModel.notify_moveN)�__name__� __module__�__qualname__r!���r*���r���r.���r-���r���r���r���r���r���5���s ��� r���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�Stickc�����������������C���s����t�jj|�dd��||�_||�_||�_|��||�\}}|��d��|��t d�t d���|��d��|�����|�� ||��|��d��|�����d�S�)NF�ZvisibleZsquareg������$@g������4@r����white)�turtle�Turtler!���r0���r1���r����coords�shapeZ shapesize�HUNIT�WUNIT�speed�pu�goto�colorZ showturtle)r ���r0���r1���r����x�yr���r���r���r!���Z���s���� zStick.__init__c�����������������C���s^���t�|d�\}}dd|��d|��t�}dd|��t�}|td��td��td�|�td��fS�)Nr���r���r���r���)�divmodr?���r>����SCREENWIDTH�SCREENHEIGHT)r ���r0���r1���ZpacketZ remainderrD���rE���r���r���r���r<���h���s����zStick.coordsc�����������������C���s*���|�j�jtjkrd�S�|�j�j�|�j|�j��d�S�r���)r���r���r#���r+���� controllerr-���r0���r1���)r ���rD���rE���r���r���r����makemoven���s����zStick.makemoveN)r4���r5���r6���r!���r<���rJ���r���r���r���r���r7���Y���s���r7���c�������������������@���s>���e�Zd�Zdd��Zddd�Zdd��Zdd ��Zd d��Zdd ��ZdS�)�NimViewc�����������������C���s����||�_�|j|�_|j|�_|�j�d��|�j�d��|�j�d��tjdd�|�_|�j� ���|�j� d��i�|�_td�D�](}tt �D�]}t|||�|�j||f<�qxql|��d��|�j�d��d�S�) Nr ���F)�����rL���r ���r8���r���r���z... a moment please ...T)r����screen�modelZ colormode�tracerZbgcolorr:���r;����writerrA���r@���r&���r���r���r7����display)r ���r���r0���r1���r���r���r���r!���u���s���� zNimView.__init__Nc�����������������C���s����|�j��d��|�j����|d�k rT|�j�dt�d�d���|�j�d��|�jj|ddd��|�j�dt�d�d ���|�j�d ��|�jj|ddd��|�j��d��d�S�) NFr���r����0���Zred�center)�Courier�����bold)ZalignZfont����Zblack)rT�������rV���T)rM���rO���rP����clearrB���rH���Zpencolor�write)r ���Zmsg1�msg2r���r���r���rQ�������s���� zNimView.displayc�����������������C���s����|�j��d��td�D�].}t|�jj|��D�]}|�j||f��t��q(qtd�D�]0}t|�jj|�t�D�]}|�j||f��d��qbqL|��d��|�j��d��d�S�)NFr���r9����*Your turn! Click leftmost stick to remove.T) rM���rO���r���rN���r&���rC����SCOLORr���rQ���r3���r���r���r���r*�������s���� z NimView.setupc�����������������C���s����|dkr2t�}t||�D�]}|�j||f��|��qnd|��d��t�d��|��d��t}t|d�|d�d�D�]"}t�d��|�j||f��|��qh|��d��d�S�) Nr���z ... thinking ... g�������?z ... thinking ... aaah ...r������g�������?r\���)�HCOLORr���r&���rC���rQ����time�sleep�COLOR)r ���r0���r1���r2���r'���Zfarber���r���r���r���r-�������s���� zNimView.notify_movec�����������������C���s(���|�j�jjdkrd}nd}|��d|��d�S�)Nr���zCongrats. You're the winner!!!z"Sorry, the computer is the winner.z2To play again press space bar. To leave press ESC.)r���rN���r(���rQ���)r ���r[���r���r���r���r/�������s����zNimView.notify_overc�����������������C���s���|�j�jtjkr|�j����d�S�r���)r���r���r#���r%���rM���rY���r,���r���r���r���rY�������s����z NimView.clear)N) r4���r5���r6���r!���rQ���r*���r-���r/���rY���r���r���r���r���rK���t���s��� rK���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)� NimControllerc�����������������C���s|���||�_�|jj|�_d|�_|�j���D�]}|�|j��q |�j�j�|�j�j j d��|�j�j�|�j�jjd��|�j�j�d��|�j�j� ���d�S�)NFZspaceZEscapezPress space bar to start game)r���r)���r&����BUSY�valuesZonclickrJ���rM���ZonkeyrN���r*���rY���rQ���Zlisten)r ���r���Zstickr���r���r���r!�������s���� zNimController.__init__c�����������������C���s*���|�j�r d�S�d|�_�|�jj�||��d|�_�d�S�)NTF)rd���r���rN���r-���r3���r���r���r���r-�������s ����zNimController.notify_moveN)r4���r5���r6���r!���r-���r���r���r���r���rc�������s���rc���c�������������������@���s ���e�Zd�ZdZdZdZdd��ZdS�)r#���r���r���r���c�����������������C���s0���t�j|�_||�_t|��|�_t|��|�_t|��|�_ d�S�r���) r#���r$���r���rM���r���rN���rK���r)���rc���rI���)r ���rM���r���r���r���r!�������s ���� zNim.__init__N)r4���r5���r6���r$���r+���r%���r!���r���r���r���r���r#�������s���r#���c������������������C���s*���t����}�|��d��|��tt��t|��}dS�)NZstandardZ EVENTLOOP)r:���ZScreen�moder*���rG���rH���r#���)Z mainscreenZnimr���r���r����main����s ���� rg����__main__)�__doc__r:���r���r`���rG���rH���r���r���r>���r?���r]���r_���rb���r���r���r����objectr���r;���r7���rK���rc���r#���rg���r4���Zmainloopr���r���r���r����<module>���s0��� $D