%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/turtledemo/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/turtledemo/__pycache__/nim.cpython-38.pyc

U

q©ßaqã@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.8/turtledemo/nim.pyÚ	randomrowsrcCsb|d|dA|dA}|dkr(t|ƒStdƒD],}|||A}|||kr0||f}|Sq0dS)Nréré)Ú
randommoveÚrange)ÚstateZxoredÚzÚsÚmoverrrÚcomputerzug!srcCsHt|ƒ}t dd¡}|||dkkrq(qt |dk||d¡}||fS)Nrrr)Úmaxrr
)rÚmrZrandrrrr+src@s4eZdZdd„Zdd„Zdd„Zdd„Zd	d
„ZdS)ÚNimModelcCs
||_dSr)Úgame)ÚselfrrrrÚ__init__6szNimModel.__init__cCsP|jjtjtjfkrdStƒtƒtƒg|_d|_d|_|jj	 
¡tj|j_dS©Nr)rrÚNimÚCREATEDÚOVERrÚsticksÚplayerÚwinnerÚviewÚsetupÚRUNNING©r rrrr*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|jdddgkSr")r&r,rrrr.PszNimModel.game_overcCs"|j||krdS| ||¡dSr)r&r©r r0r1rrrr-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©ZvisibleZsquareg$@g4@rÚwhite)ÚturtleÚTurtler!r0r1rÚcoordsÚshapeZ	shapesizeÚHUNITÚWUNITÚspeedÚpuÚgotoÚcolorZ
showturtle)r r0r1rÚxÚyrrrr!Zs


zStick.__init__cCs^t|dƒ\}}dd|d|t}dd|t}|tdtdtd|tdfS)Nrrrr)Údivmodr?r>ÚSCREENWIDTHÚSCREENHEIGHT)r r0r1ZpacketÚ	remainderrDrErrrr<hszStick.coordscCs*|jjtjkrdS|jj |j|j¡dSr)rrr#r+Ú
controllerr-r0r1)r rDrErrrÚmakemovenszStick.makemoveN)r4r5r6r!r<rKrrrrr7Ysr7c@s>eZdZdd„Zddd„Zdd„Zdd	„Zd
d„Zdd
„ZdS)ÚNimViewcCs°||_|j|_|j|_|j d¡|j d¡|j d¡tjdd|_|j 	¡|j 
d¡i|_tdƒD](}tt
ƒD]}t|||ƒ|j||f<qxql| d¡|j d¡dS)	Nr	F)éðrMr	r8rrz... a moment please ...T)rÚscreenÚmodelZ	colormodeÚtracerZbgcolorr:r;ÚwriterrAr@r&rrr7Údisplay)r rr0r1rrrr!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)rUérWT)rNrPrQÚclearrBrHZpencolorÚwrite)r Zmsg1Úmsg2rrrrR†s
zNimView.displaycCs˜|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¡dS)NFrr9ú*Your turn! Click leftmost stick to remove.T)	rNrPrrOr&rCÚSCOLORrrRr3rrrr*’s
z
NimView.setupcCsš|dkr2t}t||ƒD]}|j||f |¡qnd| d¡t d¡| d¡t}t|d|ddƒD]"}t d¡|j||f |¡qh| d¡dS)	Nrz ... thinking ...         gà?z ... thinking ... aaah ...réÿÿÿÿgš™™™™™É?r])ÚHCOLORrr&rCrRÚtimeÚsleepÚCOLOR)r r0r1r2r'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.)rrOr(rR)r r\rrrr/¬szNimView.notify_overcCs|jjtjkr|j ¡dSr)rrr#r%rNrZr,rrrrZ³sz
NimView.clear)N)	r4r5r6r!rRr*r-r/rZrrrrrLts
rLc@seZdZdd„Zdd„ZdS)Ú
NimControllercCs|||_|jj|_d|_|j ¡D]}| |j¡q |jj |jj	j
d¡|jj |jjjd¡|jj d¡|jj 
¡dS)NFZspaceZEscapezPress space bar to start game)rr)r&ÚBUSYÚvaluesZonclickrKrNZonkeyrOr*rZrRÚlisten)r rZstickrrrr!ºs
zNimController.__init__cCs*|jr
dSd|_|jj ||¡d|_dS)NTF)rerrOr-r3rrrr-Ås
zNimController.notify_moveN)r4r5r6r!r-rrrrrd¸srdc@s eZdZdZdZdZdd„ZdS)r#rrrcCs0tj|_||_t|ƒ|_t|ƒ|_t|ƒ|_	dSr)
r#r$rrNrrOrLr)rdrJ)r rNrrrr!Ñs


zNim.__init__N)r4r5r6r$r+r%r!rrrrr#Ísr#cCs*t ¡}| d¡| tt¡t|ƒ}dS)NZstandardZ	EVENTLOOP)r:ZScreenÚmoder*rGrHr#)Z
mainscreenZnimrrrÚmainÙs

riÚ__main__)Ú__doc__r:rrarGrHrrr>r?r^r`rcrrrÚobjectrr;r7rLrdr#rir4ZmainlooprrrrÚ<module>s0

$D

Zerion Mini Shell 1.0