Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/turtledemo/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/turtledemo/__pycache__/nim.cpython-33.pyc

�
��ffc@sjdZddlZddlZddlZdZdZdZdZedZeedd	edd
Z	d"Z
d#Zd$Zdd�Z
dd�Zdd�ZGdd�de�ZGdd�dej�ZGdd�de�ZGdd�de�ZGdd�de�Zej�Zejd�ejee�dd �Zed!krfe�ej�ndS(%u�      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.
iNi�i�iiiiiii?i�i�cCstjtt�S(N(urandomurandintu	MINSTICKSu	MAXSTICKS(((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu	randomrowsu	randomrowcCsy|d|dA|dA}|dkr0t|�SxBtd�D]4}|||A}|||kr=||f}|Sq=WdS(Niiii(u
randommoveurange(ustateuxoreduzusumove((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyucomputerzug!s
ucomputerzugcCsht|�}x/tjdd�}|||dkkrPqqtj|dk||d�}||fS(Niii(umaxurandomurandint(ustateumuzurand((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu
randommove+s u
randommovecBsP|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS(uNimModelcCs
||_dS(N(ugame(uselfugame((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu__init__6suNimModel.__init__cCsr|jjtjtjgkr"dSt�t�t�g|_d|_d|_	|jj
j�tj|j_dS(Ni(
ugameustateuNimuCREATEDuOVERu	randomrowusticksuplayeruNoneuwinneruviewusetupuRUNNING(uself((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyusetup9s		uNimModel.setupcCs�|j|}||j|<|jjj||||j�|j�rstj|j_|j|_	|jjj
�nI|jdkr�d|_t|j�\}}|j||�d|_ndS(Nii(
usticksugameuviewunotify_moveuplayeru	game_overuNimuOVERustateuwinnerunotify_overucomputerzugumove(uselfurowucolu	maxspalte((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyumoveBs

	u
NimModel.movecCs|jdddgkS(Ni(usticks(uself((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu	game_overPsuNimModel.game_overcCs+|j||krdS|j||�dS(N(usticksumove(uselfurowucol((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyunotify_moveSsuNimModel.notify_moveN(u__name__u
__module__u__qualname__u__init__usetupumoveu	game_overunotify_move(u
__locals__((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyuNimModel5s
	uNimModelcBs8|EeZdZdd�Zdd�Zdd�ZdS(uStickcCs�tjj|dd�||_||_||_|j||�\}}|jd�|j	t
dtd�|jd�|j
�|j||�|jd�|j�dS(Nuvisibleusquareg$@g4@iuwhiteF(uturtleuTurtleu__init__uFalseurowucolugameucoordsushapeu	shapesizeuHUNITuWUNITuspeedupuugotoucoloru
showturtle(uselfurowucolugameuxuy((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu__init__Zs			



uStick.__init__cCskt|d�\}}dd|d|t}dd|t}|tdtdtd|tdfS(Niiii(udivmoduWUNITuHUNITuSCREENWIDTHuSCREENHEIGHT(uselfurowucolupacketu	remainderuxuy((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyucoordshsuStick.coordscCs9|jjtjkrdS|jjj|j|j�dS(N(ugameustateuNimuRUNNINGu
controllerunotify_moveurowucol(uselfuxuy((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyumakemovensuStick.makemoveN(u__name__u
__module__u__qualname__u__init__ucoordsumakemove(u
__locals__((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyuStickYsuStickcBs_|EeZdZdd�Zd
dd�Zdd�Zdd�Zd	d
�Zdd�Z	d
S(uNimViewcCs�||_|j|_|j|_|jjd�|jjd�|jjd�tjdd�|_	|j	j
�|j	jd�i|_xJt
d�D]<}x3t
t�D]%}t|||�|j||f<q�Wq�W|jd�|jjd	�dS(
Ni�i�uvisibleiiu... a moment please ...F(i�i�i�T(ugameuscreenumodelu	colormodeutraceruFalseubgcoloruturtleuTurtleuwriterupuuspeedusticksurangeu	MAXSTICKSuStickudisplayuTrue(uselfugameurowucol((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu__init__us	
	'
uNimView.__init__cCs�|jjd�|jj�|dk	rt|jjdtdd�|jjd�|jj	|dddd�n|jjdtdd�|jjd�|jj	|dddd�|jjd�dS(Niii0uredualignucenterufontuCourieriuboldiublackiF(uCourieriubold(uCourieriuboldT(uscreenutraceruFalseuwriteruclearuNoneugotouSCREENHEIGHTupencoloruwriteuTrue(uselfumsg1umsg2((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyudisplay�s
uNimView.displaycCs�|jjd�xOtd�D]A}x8t|jj|�D] }|j||fjt�q:WqWxRtd�D]D}x;t|jj|t�D] }|j||fjd�q�WqoW|j	d�|jjd�dS(Niuwhiteu*Your turn! Click leftmost stick to remove.FT(uscreenutraceruFalseurangeumodelusticksucoloruSCOLORu	MAXSTICKSudisplayuTrue(uselfurowucol((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyusetup�s" "
u
NimView.setupcCs�|dkrIt}x�t||�D] }|j||fj|�q"Wn�|jd�tjd�|jd�t}xIt|d|dd�D]-}tjd�|j||fj|�q�W|jd�dS(	Niu ... thinking ...         g�?u ... thinking ... aaah ...ig�������?u*Your turn! Click leftmost stick to remove.i����(uHCOLORurangeusticksucolorudisplayutimeusleepuCOLOR(uselfurowucolu	maxspalteuplayerufarbeus((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyunotify_move�s!


!
uNimView.notify_movecCs8|jjjdkrd}nd}|jd|�dS(NiuCongrats. You're the winner!!!u"Sorry, the computer is the winner.u2To play again press space bar. To leave press ESC.(ugameumodeluwinnerudisplay(uselfumsg2((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyunotify_over�s	uNimView.notify_overcCs)|jjtjkr%|jj�ndS(N(ugameustateuNimuOVERuscreenuclear(uself((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyuclear�su
NimView.clearN(
u__name__u
__module__u__qualname__u__init__uNoneudisplayusetupunotify_moveunotify_overuclear(u
__locals__((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyuNimViewts
uNimViewcBs,|EeZdZdd�Zdd�ZdS(u
NimControllercCs�||_|jj|_d|_x'|jj�D]}|j|j�q1W|jjj	|jj
jd�|jjj	|jjjd�|jjj
d�|jjj�dS(NuspaceuEscapeuPress space bar to start gameF(ugameuviewusticksuFalseuBUSYuvaluesuonclickumakemoveuscreenuonkeyumodelusetupuclearudisplayulisten(uselfugameustick((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu__init__�s		uNimController.__init__cCs9|jr
dSd|_|jjj||�d|_dS(NTF(uBUSYuTrueugameumodelunotify_moveuFalse(uselfurowucol((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyunotify_move�s
		uNimController.notify_moveN(u__name__u
__module__u__qualname__u__init__unotify_move(u
__locals__((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu
NimController�su
NimControllercBs2|EeZdZdZdZdZdd�ZdS(uNimiiicCsFtj|_||_t|�|_t|�|_t|�|_	dS(N(
uNimuCREATEDustateuscreenuNimModelumodeluNimViewuviewu
NimControlleru
controller(uselfuscreen((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu__init__�s
	uNim.__init__N(u__name__u
__module__u__qualname__uCREATEDuRUNNINGuOVERu__init__(u
__locals__((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyuNim�suNimustandardcCstt�}dS(Nu
EVENTLOOP!(uNimu
mainscreen(unim((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyumain�sumainu__main__(i?i?i(i�i�i�(i�i�i�(u__doc__uturtleurandomutimeuSCREENWIDTHuSCREENHEIGHTu	MINSTICKSu	MAXSTICKSuHUNITuWUNITuSCOLORuHCOLORuCOLORu	randomrowucomputerzugu
randommoveuobjectuNimModeluTurtleuStickuNimViewu
NimControlleruNimuScreenu
mainscreenumodeusetupumainu__name__umainloop(((u3/opt/alt/python33/lib64/python3.3/turtledemo/nim.pyu<module>
s6


$D