HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //proc/thread-self/root/usr/local/lib/python3.7/turtledemo/__pycache__/nim.cpython-37.pyc
B

"��gq�@s�dZddlZddlZddlZdZdZdZdZedZeedd	edd
Z	dZ
dZd
Zdd�Z
dd�Zdd�ZGdd�de�ZGdd�dej�ZGdd�de�ZGdd�de�ZGdd�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�������)�?rr)���r
)r
r
r	cCst�tt�S)N)�random�randint�	MINSTICKS�	MAXSTICKS�rr�*/usr/local/lib/python3.7/turtledemo/nim.py�	randomrowsrcCsb|d|dA|dA}|dkr(t|�Sx4td�D](}|||A}|||kr2||f}|Sq2WdS)Nr�r�)�
randommove�range)�stateZxored�z�s�moverrr�computerzug!srcCsLt|�}x"t�dd�}|||dkkr
Pq
Wt�|dk||d�}||fS)Nrrr)�maxrr)r�mrZrandrrrr+src@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�NimModelcCs
||_dS)N)�game)�selfrrrr�__init__6szNimModel.__init__cCsP|jjtjtjgkrdSt�t�t�g|_d|_d|_|jj	�
�tj|j_dS)Nr)rr�Nim�CREATED�OVERr�sticks�player�winner�view�setup�RUNNING)rrrrr(9szNimModel.setupcCs�|j|}||j|<|jj�||||j�|��rRtj|j_|j|_	|jj�
�n0|jdkr�d|_t|j�\}}|�||�d|_dS)Nrr)
r$rr'�notify_mover%�	game_overr!r#rr&�notify_overrr)r�row�col�	maxspalterrrrBs



z
NimModel.movecCs|jdddgkS)Nr)r$)rrrrr+PszNimModel.game_overcCs"|j||krdS|�||�dS)N)r$r)rr-r.rrrr*SszNimModel.notify_moveN)�__name__�
__module__�__qualname__r r(rr+r*rrrrr5s
	rc@s$eZdZdd�Zdd�Zdd�ZdS)�StickcCs�tjj|dd�||_||_||_|�||�\}}|�d�|�t	dt
d�|�d�|��|�
||�|�d�|��dS)NF)�visibleZsquareg$@g4@r�white)�turtle�Turtler r-r.r�coords�shapeZ	shapesize�HUNIT�WUNIT�speed�pu�goto�colorZ
showturtle)rr-r.r�x�yrrrr Zs


zStick.__init__cCs^t|d�\}}dd|d|t}dd|t}|tdtdtd|tdfS)Nrrrr)�divmodr;r:�SCREENWIDTH�SCREENHEIGHT)rr-r.ZpacketZ	remainderr@rArrrr8hszStick.coordscCs*|jjtjkrdS|jj�|j|j�dS)N)rrr!r)�
controllerr*r-r.)rr@rArrr�makemovenszStick.makemoveN)r0r1r2r r8rFrrrrr3Ysr3c@s>eZdZdd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�NimViewcCs�||_|j|_|j|_|j�d�|j�d�|j�d�tjdd�|_|j�	�|j�
d�i|_x8td�D],}x&tt
�D]}t|||�|j||f<q|WqnW|�d�|j�d�dS)	Nr	F)��rHr	)r4rrz... a moment please ...T)r�screen�modelZ	colormode�tracerZbgcolorr6r7�writerr=r<r$rrr3�display)rrr-r.rrrr us

zNimView.__init__NcCs�|j�d�|j��|dk	rT|j�dtdd�|j�d�|jj|ddd�|j�dtdd	�|j�d
�|jj|ddd�|j�d�dS)
NFrr�0Zred�center)�Courier��bold)ZalignZfont�Zblack)rP�rRT)rIrKrL�clearr>rDZpencolor�write)rZmsg1�msg2rrrrM�s
zNimView.displaycCs�|j�d�x>td�D]2}x,t|jj|�D]}|j||f�t�q,WqWx@td�D]4}x.t|jj|t�D]}|j||f�d�qnWqVW|�d�|j�d�dS)NFrr5z*Your turn! Click leftmost stick to remove.T)	rIrKrrJr$r?�SCOLORrrM)rr-r.rrrr(�s
z
NimView.setupcCs�|dkr6t}x�t||�D]}|j||f�|�qWnh|�d�t�d�|�d�t}x:t|d|dd�D]"}t�d�|j||f�|�qnW|�d�dS)	Nrz ... thinking ...         g�?z ... thinking ... aaah ...r���g�������?z*Your turn! Click leftmost stick to remove.)�HCOLORrr$r?rM�timeZsleep�COLOR)rr-r.r/r%Zfarberrrrr*�s



zNimView.notify_movecCs(|jjjdkrd}nd}|�d|�dS)NrzCongrats. You're the winner!!!z"Sorry, the computer is the winner.z2To play again press space bar. To leave press ESC.)rrJr&rM)rrWrrrr,�szNimView.notify_overcCs|jjtjkr|j��dS)N)rrr!r#rIrU)rrrrrU�sz
NimView.clear)N)	r0r1r2r rMr(r*r,rUrrrrrGts
rGc@seZdZdd�Zdd�ZdS)�
NimControllercCs�||_|jj|_d|_x|j��D]}|�|j�q"W|jj�|jj	j
d�|jj�|jjjd�|jj�d�|jj�
�dS)NFZspaceZEscapezPress space bar to start game)rr'r$�BUSY�valuesZonclickrFrIZonkeyrJr(rUrMZlisten)rrZstickrrrr �s
zNimController.__init__cCs*|jr
dSd|_|jj�||�d|_dS)NTF)r^rrJr*)rr-r.rrrr*�s
zNimController.notify_moveN)r0r1r2r r*rrrrr]�sr]c@s eZdZdZdZdZdd�ZdS)r!rrrcCs0tj|_||_t|�|_t|�|_t|�|_	dS)N)
r!r"rrIrrJrGr'r]rE)rrIrrrr �s


zNim.__init__N)r0r1r2r"r)r#r rrrrr!�sr!cCs*t��}|�d�|�tt�t|�}dS)NZstandardZ	EVENTLOOP)r6ZScreen�moder(rCrDr!)Z
mainscreenZnimrrr�main�s

ra�__main__)�__doc__r6rr[rCrDr
rr:r;rXrZr\rrr�objectrr7r3rGr]r!rar0Zmainlooprrrr�<module>
s0

$D