python (3.11.7)

(root)/
lib/
python3.11/
turtledemo/
__pycache__/
nim.cpython-311.opt-2.pyc

eq^	ddlZddlZddlZdZdZdZdZedzZeedzdzedzd	zzzZd
Z	dZ
dZd
ZdZ
dZGddeZGddejZGddeZGddeZGddeZdZedkreejdSdS)Nii)?r	r)r)rrr
c@tjttSN)randomrandint	MINSTICKS	MAXSTICKSB/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/turtledemo/nim.py	randomrowrs>)Y///rc|d|dz|dz}|dkrt|StdD]!}|||z}|||kr||f}|cS"dS)Nrr)
randommoverange)statexoredzsmoves     rcomputerzugr !s!HuQx%(*Ezz%   
1XX!Hua==q6DKKKrct|}	tjdd}|||dkkrn'tj|dk||dz
}||fS)NTrrr)maxrr)rmrrands    rrr+sfE

AN1Q8q1u>!a%q!,,Dd7Nrc,eZdZdZdZdZdZdZdS)NimModelc||_dSr
)game)selfr(s  r__init__zNimModel.__init__6s
			rc2|jjtjtjfvrdStttg|_d|_d|_|jj	
tj|j_dS)Nr)r(rNimCREATEDOVERrsticksplayerwinnerviewsetupRUNNINGr)s rr3zNimModel.setup9sl9?3;"999F {{IKK=	+	rc|j|}||j|<|jj||||j|rBtj|j_|j|_	|jj
dS|jdkr=d|_t|j\}}|||d|_dSdS)Nrr)
r/r(r2notify_mover0	game_overr,r.rr1notify_overr r)r)rowcol	maxspaltes    rrz
NimModel.moveBsK$	C	""3YDDD>>	!hDIO+DKIN&&(((((
[A

DK"4;//HCIIc3DKKK	
rc|jgdkS)N)rrr)r/r5s rr8zNimModel.game_overPs{iii''rcX|j||krdS|||dSr
)r/rr)r:r;s   rr7zNimModel.notify_moveSs3;ss""F		#srN)__name__
__module____qualname__r*r3rr8r7rrrr&r&5s_&&&(((rr&c eZdZdZdZdZdS)Stickctj|d||_||_||_|||\}}|d|tdztdz|d||
|||d|dS)NFvisiblesquareg$@g4@rwhite)turtleTurtler*r:r;r(coordsshape	shapesizeHUNITWUNITspeedpugotocolor
showturtle)r)r:r;r(xys      rr*zStick.__init__Zs
tU333	{{3$$1

8uTz5:...

1


					!A

7rct|d\}}dd|zzd|zztz}dd|zztz}|tdzz
tdzztdz|z
tdzz
fS)Nrrrr)divmodrPrOSCREENWIDTHSCREENHEIGHT)r)r:r;packet	remainderrVrWs       rrLzStick.coordshss"3NN	
f_q9}
,5
S[E!;!##eqj0,!2Ca2G%ST*2TTTrc|jjtjkrdS|jj|j|jdSr
)r(rr,r4
controllerr7r:r;)r)rVrWs   rmakemovezStick.makemovens=9?ck))F	((48<<<<<rN)r@rArBr*rLr`rrrrDrDYsDUUU=====rrDc4eZdZdZddZdZdZdZdZdS)	NimViewcn||_|j|_|j|_|jd|jd|jdt
jd|_|j	|j
di|_tdD]4}ttD]}t||||j||f<5|d|jddS)	Nr
F)rdr
rFrrz... a moment please ...T)r(screenmodel	colormodetracerbgcolorrJrKwriterrRrQr/rrrDdisplay)r)r(r:r;s    rr*zNimView.__init__us$	kZ
c"""5!!!O,,,mE222!88	@	@CY''
@
@*/S$*?*?S#J''
@.///4     rNc|jd|j|^|jdt
dzdz|jd|j|dd|jdt
dzd	z|jd
|j|dd|jddS)
NFrr0redcenter)Courierbold)alignfontblack)rprrT)rerhrjclearrSr[pencolorwrite)r)msg1msg2s   rrkzNimView.displays5!!!KQ,! 3b 8999K  '''Kd(9NOOOlNa/"4555W%%%$h5JKKK4     rc|jdtdD]K}t|jj|D])}|j||ft*LtdD]L}t|jj|tD]$}|j||fd%M|d|jddS)NFrrI*Your turn! Click leftmost stick to remove.T)	rerhrrfr/rTSCOLORrrkr?s   rr3z
NimView.setups5!!!88	6	6CTZ.s344
6
6S#J'--f5555
688	7	7CTZ.s3Y??
7
7S#J'--g6666
7ABBB4     rc|dkr>t}t||D]$}|j||f|%dS|dtjd|dt}t|dz
|dz
dD]8}tjd|j||f|9|ddS)	Nrz ... thinking ...         g?z ... thinking ... aaah ...rg?r~)HCOLORrr/rTrktimesleepCOLOR)r)r:r;r<r0farbers       rr7zNimView.notify_movesQ;;E3	**
3
3S!H%++E2222
3
3
LL5666JsOOOLL5666E9Q;Ar22
3
3
3S!H%++E2222LLEFFFFFrcf|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.)r(rfr1rk)r)r|s  rr9zNimView.notify_overs;9?!Q&&3DD7DI4PPPPPrcp|jjtjkr|jdSdSr
)r(rr,r.rerxr5s rrxz
NimView.clears59?ch&&K'&rr
)	r@rArBr*rkr3r7r9rxrrrrbrbtsy!!!"
!
!
!
!	!	!	!
G
G
GQQQ     rrbceZdZdZdZdS)
NimControllerc||_|jj|_d|_|jD]}||j|jj|jj	j
d|jj|jjjd|jjd|jj
dS)NFspaceEscapezPress space bar to start game)r(r2r/BUSYvaluesonclickr`reonkeyrfr3rxrklisten)r)r(sticks   rr*zNimController.__init__s	i&	[''))	*	*EMM%.))))	ty4g>>>	ty~3X>>>	>???	!!!!!rct|jrdSd|_|jj||d|_dS)NTF)rr(rfr7r?s   rr7zNimController.notify_moves=9	F		##C---			rN)r@rArBr*r7rrrrrs2	"	"	"rrc eZdZdZdZdZdZdS)r,rrrctj|_||_t	||_t
||_t||_	dSr
)
r,r-rrer&rfrbr2rr_)r)res  rr*zNim.__init__s?[
d^^
DMM	'--rN)r@rArBr-r4r.r*rrrr,r,s2GGD.....rr,ctj}|d|tt
t
|}dS)Nstandard	EVENTLOOP)rJScreenmoder3rZr[r,)
mainscreennims  rmainrsEJOOJ[,///

j//C;r__main__)rJrrrZr[rrrOrPrrrrr robjectr&rKrDrbrr,rr@mainlooprrr<module>rs	







		a2-Q!0CCD		000!!!!!v!!!H=====FM===6A A A A A fA A A HF*	.	.	.	.	.&	.	.	.zDFFFFOr