from random import *#randint#,seed from kandinsky import * from time import *#sleep from ion import *#keydown,KEY_RIGHT,KEY_LEFT,KEY_OK,KEY_SHIFT #seed(7) #orange=(250,200,120) def valide(): return keydown(KEY_EXE) or keydown(KEY_OK) def IMG(carte,x,y,quecadre=0): C= carte[-1] in "mso" if not quecadre: for j in range(57-28*C): for i in range(22-11*C): clr=ord(Image[carte][22*j//(1+C)+i])-35 #clrs=(clr//(8**4),(clr//(8**3))%8,(clr//(8**2))%8,(clr//8)%8,clr%8) for k in (0,1): if 2*i+k<43: CLR=Palette[carte][(clr//(8**(1-k)))%8] set_pixel(x+2*i+k,y+j,CLR) if C: set_pixel(x+42-2*i-k,y+j,CLR) set_pixel(x+2*i+k,y+57-j,CLR) set_pixel(x+42-2*i-k,y+57-j,CLR) clrH,clrB,clrHf,clrBf=couleurs(carte) for k in (0,1): X1=x-1+44*k X2=x-2+46*k fill_rect(x-1,y-2+60*k,45,1,(clrH,clrB)[k]) # haut et bas fill_rect(X1,y-2,1,23+14*k,clrH) # haut gauche et haut droite fill_rect(X1,y+58-37+14*k,1,37-14*k,clrB) fill_rect(x-2*k,y-1-2*k,43+4*k,1,clrHf) # haut et haut haut fill_rect(x-2*k,y+57+2*k,43+4*k,1,clrBf) # bas et bas bas fill_rect(X2,y-3,1,24+14*k,clrHf) # haut gauche et haut droite fill_rect(X2,y+59-38+14*k,1,38-14*k,clrBf) # bas gauche et bas droite if carte=="Pio": for i in range(7): fill_rect(x-2,y+58+i,47,1,(clrB,clrBf)[i%2]) # hachures def couleurs(carte): if carte[0]=="T": clrB,clrH=("rgb"["fve".index(carte[k])] for k in (1,2)) else: clrB=(("yellow","gray")[carte=="Obs"],"brown")[carte=="Pio"] if carte[0] in "FVE": clrB="rgb"["FVE".index(carte[0])] clrH=clrB #couleurs foncées de la carte clrBf,clrHf=((150*(k=="r"),150*(k=="g"),150*(k=="b")) for k in (clrB,clrH)) if clrB in ("yellow","gray","brown"): clrBf=(100-50*(clrB=="brown"),100-50*(clrB=="brown"),100*(clrB=="gray")) clrHf=clrBf return clrH,clrB,clrHf,clrBf def actu(n,clr=(250,200,120)): X=10+105*(n==2)+210*(n==3) Y=10+70*(n==0) if n==0: fill_rect(0,125,320,97,"w") L=len(Mains[0]) # affichage de la main du joueur for i in range(L): IMG(Mains[0][i],12+min(50,251//max(1,L-1))*i,150) draw_string("J{} ={:<2d}".format(n+1,len(Mains[n])),X,Y,"k",clr) draw_string("\u25ae",X+50,Y,"gray","brown") draw_string("Score{:>+4d}".format(scores[n]),X,Y+16,"k",clr) def condition(p,mode): if mode==1: return NAtq>0 and Jeu[-1][1:]=="tq" and Mains[jr][p][1:]=="tq" elif mode==2: return not NAtq and (clr_atd in Mains[jr][p][0:2].lower()) else: return not NAtq and (Mains[jr][p][0] in "LO") # Lum ou Obs def traitement(p): global sens, NAtq, tr_fini, rejouer, clr_choisie actu(jr,"g") Jeu.append(Mains[jr].pop(p)) tr_fini=1 NAtq += Jeu[-1][1:]=="tq" sens *= (-1)**(Jeu[-1]=="Vsp") #Change fill_rect(244,50,36,36,"orange") for k in (1,0): # flèche du sens fill_rect(254+16*k,60,2,16,"purple") draw_string("\u2192"*k,263,60-8*sens,"purple","orange") fill_rect(255,75-16*k,16,2,"purple") rejouer= Jeu[-1]=="Fsp" #Double if Jeu[-1] in ("Esp","Lum","Obs"): if jr!=0: (Ne,Nf,Nv)=(sum((elt in Mains[jr][k][0:2].lower()) for k in range(len(Mains[jr]))) for elt in "efv") clr_choisie="efv"[(Ne,Nf,Nv).index(max(Ne,Nf,Nv))] else: draw_string("choisir l'élément",130,127,"purple") pos=1 chg=-1 while valide():1 while not valide(): if chg: pos=(pos+chg)%3 fill_rect(229,88,80,36,"brown") for i in range(3): D=(i==pos) fill_rect(238+22*i-4*D,97-4*D,18+8*D,18+8*D,"rbg"[i]) sleep(0.2) chg=keydown(KEY_RIGHT)-keydown(KEY_LEFT) fill_rect(229,88,80,36,"w") clr_choisie="fev"[pos] IMG(Jeu[-1],114,65) # carte en jeu if Jeu[-1] in ("Esp","Lum","Obs") and clr_choisie!="": fill_rect(139,62,20,20,"rgb"["fve".index(clr_choisie)])#Aff_carte() def cp_ok(jr): for i in range(len(Mains[jr])): for m in (1,2,3): if condition(i,m): # si on a une carte jouable return 1 return 0 def pioche(jr): global Perdant,tr_fini,deja_pioche,NAtq actu(jr,"r") deja_pioche=1 for n in range(max(1,2*NAtq)): # si NAtq==0, ça fait 1 tour if len(Mains[jr])==15: Perdant=jr tr_fini=1 break Mains[jr]=sorted(Mains[jr]+[Jeu.pop(randint(0,len(Jeu)-2))]) for carte in ("Fsi","Pio"): sleep(0.5) IMG(carte,172,60,1) if NAtq: tr_fini=1 NAtq=0 actu(jr,"r") Palette={'Vsi':((125,198,192),(175,229,239),(111,169,162),(151,201,200),(149,159,160),(123,125,124),(181,200,198),(255,255,255)),'Vtq':((136,193,187),(125,132,136),(172,181,176),(255,255,255),(126,129,99),(131,124,81),(88,90,85),(81,93,131)),'Vsp':((132,190,182),(194,220,220),(165,177,175),(115,121,123),(112,115,76),(168,171,123),(224,231,177),(255,255,255)),'Esi':((37,58,69),(60,84,105),(78,114,133),(142,168,177),(106,145,165),(100,155,198),(129,185,215),(179,215,230)),'Etq':((63,84,106),(90,125,146),(119,120,115),(156,171,176),(71,74,72),(124,172,201),(195,196,155),(114,96,52)),'Esp':((211,170,81),(98,138,160),(38,140,237),(54,86,104),(105,109,114),(152,192,213),(213,88,81),(157,58,175)),'Fsi':((147,89,48),(101,58,31),(208,131,86),(243,188,107),(250,155,84),(248,239,132),(255,255,185),(255,255,255)),'Ftq':((161,82,44),(243,140,77),(243,229,125),(90,54,30),(117,107,79),(155,161,153),(255,255,255),(90,99,116)),'Fsp':((153,91,66),(102,61,36),(139,108,74),(236,151,81),(196,167,71),(196,135,100),(250,223,119),(255,255,255)),'Tev':((146,136,103),(175,174,132),(171,165,160),(90,91,94),(141,201,131),(95,206,89),(228,239,230),(132,130,131)),'Tvf':((100,78,44),(87,77,56),(165,169,112),(144,134,93),(118,99,72),(172,131,102),(56,37,26),(197,200,156)),'Tfe':((81,70,195),(124,121,207),(91,92,178),(153,160,218),(180,219,230),(89,131,154),(255,255,255),(133,182,204)),'Lum':((133,191,102),(132,146,74),(99,105,44),(177,182,126),(175,183,152),(127,129,97),(227,232,201),(247,219,109)),'Obs':((119,96,117),(75,54,36),(106,94,58),(56,2,58),(92,38,101),(120,65,121),(80,36,67),(158,150,150)),'Pio':((188,189,131),(95,98,43),(78,94,91),(80,69,123),(148,154,151),(142,76,22),(197,205,199),(106,54,54))} Image={'Vsi': '###$##3#3+##+3#3#$#####53#+$#$##33#,#$#+#53#%3%3+#$,+5553,=HC+5#5####3+%$,;&(6HPPPO;3###%%3#+#;>568HPPPGPP35%#5%$#%$-3HGYHOGGGPP$%%3M##&-$/GIbWGGGYHOF&#%K535&=5GZbWIYYYWGG$%353%3&=GIbaGYbYZYYV66>;5#3#.HIbWGZbYbaYXF.>>+#33%7IYGIbaYbbYWPPGF3;#33HPGGZbYYbbYGGGPHM>=638POGYYGZbaWGGWGGGV>.3#HPGGGIbbYYYYYIYGO156>;@PHOYZWIYYYYYYGGHPP><+PPGIYGYbaYYYYGYGHPPT,+PPPGGYYYZYYWYYWGHGF5,+7PPPOGIYYYYZaWPGGGA5>;8PPHPGGIYZbaGPGGGP5>6;?OGPPOYbaYZYGGGGGOVV6+,>/PGGYGGWGGGGYYHOYVA+5>YHPPPOGHOIZbaGPHIWHC>1Y@PPOGIYZbbYWHPPIWH3<1YGHPPGYYbbbYGGGOWGI;>UYPWGOIYbbbYYYWIYGHY;>6>POGYZbaYYYaYYYWGP6S><TYWGOGYYbbaYZYWIWIV+=AAYYIHPGIYYbZaZaGPIV;>A>YXOGGIYYYbbbaWPQW>S=AAYYPOGGIYbbbYWHPJ_N;.<TXYHOGIZbbbaYIYYGHN+>6>@OWGIYbaYWHQYaWWPNS>UYYWGIYbbYYYYYYYYGOV;<1YYYYPGYYYbYYbbbYOY,;>1Y5WYWPOYZbbbbaYG9Y.;5>YU@IYGGYYbYYGWJEYV=3,A1UIGYZbbbbaYYYZGYY<+.6>AYYIIZbaYWZYYaIVV6+>6=IYOYYGZaYYRYYXI5>6;>=6>AWIbYYbbbZYYG>A5>;,-61YYWIbbbbbbaYIYV5,+,,.1AAaOYZaGGWYYIA1,,+,>=A,ZaZGYbbaaYWQ1=><+>#56aQ_IaWYYbaYHDa56>;#6.>>OZWYbbYYGWYYA>.3#3%>=6WIZbbbbaYG,.E>=633#;66.OZbbbbWWFT.66+#33#.&><XIYbYWITV,V>>+#3%3&;6</GZYWG<VV,>6>;5#535&=6,VYZWT>>,.5>%35#M##&-$.)WZYV>,>,%.&#%35%$#%4-7YbaD565,5#$%%3%%3#+#;;IVW<56;>#.#5%####3+%$,;&(&#<,%#+3###%3%3+#$,+5553,,;#+5#5##53#+$#$+#63#,#$#+#53####$##3#3+##+3#3#$####', 'Vtq': "#$5>>>>=5>>>=54,,,54,3%6>>>>56>>>=55,,,,,,,+>>>>>6>>>=54,4,,4,,,,+>>>=6>>>5555>55454-553>>55>>>55>>=5554-=>=4+>4-6>556>5/GG5,-5>=4,3555>5555GGGGG556>=4,-;->=4GGHPGGYYG-6>=-4463>7,GGPQ0Ra\\2H6>=,%5,5+5/HGIZY2Yb0LW6=,,%55,+,/Qb1YY,YL,LWE,-5-54,+,/J,4aY4ZYT,WE5>54-54+-/I0DYb5TaY2_F>>54,54S4/I,2Y\\5,,YYWE>54,T4,#459\\1R,64,,Q\\E=55,-5-#76GbX,,.4,,0YE>=5>>=5+5EGYX,,64,,,QG56>>>54C#$GaL,,5=55T0O6>>=5,6+##GYL-55=54,1P>>=554,###GY,,56>>5,,X6=>=5,S###7Q,-5>>>5557L6>=-7+###7Q,-5>>>>=50YP/,-4####'Q,5>>>>=4,XI0WWD####=8L55>>>>5,,XI1QGD-33##'L555>>>5,TWD2RaGGD##55P,,-=>55,0WG2YZaWG3>>=HTT5565,,0YL1X,,aG3>>=GL15,64,,QaGZa,P1D#>54GXD,,-4,,QYG,aTL_D#,,,GYT,,-4,0YbG,1T,WD+,-67JYT,,4,X\\2W,,Y1G-3##%/1YY,,4bQa,W,,YbG6;#337J,aZb4YL2\\WD,1aG>;#=37I,,YY,`Z,,WE40_M>;#%5/I2\\1Z,abYG/E10WE53##5,I2\\bYTYIGGGD,,OF=+#%%,IaaYXPPQGG55,,OD63##$TGYGGGPG56>>=41O,63##$1GG/IX,55>>5554P,53##%$D4WJ`,,5>654,7P,53###%54WZY,,-=55,TXL55+###%%%GZaT,-=,41,XE54+###%#5DT1T,-4,,,1W65,3####>$I2,Y,-,,,0ZG5,-3####%'I2\\Yb-,,,OYG,-63#####7I,,`a-T,QZ_I->>;#####/GYb`Z,bXZZWE>>>3#####,/GIaZ2aQ\\2WF>>=3####,5,/GGYZY\\,2W6>>53####,,4,/GPYZ\\22G6>=5++###,,5-54HPIY,1E>=4,+####1,5555>7IGIaG=4,$#####),5555>>=GGGD,,+######$T,555>>>=GGO,#&>;###+#1T,555554,,6>>>>3#####$,,,,,1D,6>>>=6>;#####$-4,,,555>5555>>;", 'Vsp': '#########+#%6>GPPGG>;#####+$#$#%?PQYYPPPOGF####;+##%P8TbYYXPPOGGG;####+&@QbbbaXPPPOOGGG;####&HZbbaPPGGGGGGGGG;###GQbbaXQYXOG??GGG>?;;&HZbbYQbbXM5O>2OFFF>;?HbbbYYbb-5,55F$7G>>>#QbbbPbb\\54,5>>>%45??;#bbaPRb-4,55556>,\\6>>##bYOQa84552b-5=:\\55>###XOHPM554b\\5552b6=63+##OGO=554b\\,2-2b-6>;#+##?G>=65,,\\b]:b,-6=,####GF=>>52,2-:b2b->4+##$+56<6>55555,2b-5>%%3,,+,+=64>=6=,4\\,,5555>#,+###%56>=552bb],bb5>######4,]6>=4b\\,2bb->3###+##%4\\5=2b-4bb\\55=33#+,%,+5-54,552b-5-6=,-$+##,#%6=55>554bb55#4+###-5#:.=55>5,bb->:+%5+#$,,4,-4->5:b,,55=,4,,##+45,44->5552\\55=]43-####5,b5->55b\\4\\64-3##+#$,,,b,-54b\\,b]=,,,,#+#%$,,4,]=4-:bb5=,,,43##$#,-5b\\65:bb-65%,-$#+#%$,-:->=4bb54555,,43#+$,,555>52\\52-==4],,#+###554->=55b]55=>]5##+#+4644565:b\\4,64>2=6,#$,,5=54bbbbbb->->,464##-5#>54,552b\\64564<5=###,3%5>55,2b]5-56-456#,%,+5,>52bb\\,4,546455++##%4\\6=5,,,2b]5\\5-5>+###5,\\655,bbbb5:-=55>#####%]6=4bbb\\54b6556;#,+#-,566=b\\-52b]=b]>$+,,+-%=6:65b\\bb\\52b-=,+,##%,=65\\552\\-52b]6;$+####\\>5=5-55-5bb\\->##+##+##>5552bbbbbbU>#$,[#####&=552bbbbbUF;$2bS#####-F55bbbba8F4,bbY[##+##,>>MYZY8O5bbaabb[#####$&?GGGGEQZYZbbbb[######.HPXXQYYYYbbbbbS;###+$-?PYYYYbbbbbbbYC##$##$+6HPYYYbbbbbY8F;####+###?HQYYbbbYOG>######+#$,+6?GPPPGF########;+#$,+##>=####+########+$#$+####,+$#+#######$#####+##+####$####', 'Esi': '$####$###-655D#-,5##,+#####$##$,,,/557+,+##+$#####$-<,,$5GG7+#####-+###+->D,,,5GGF+#####F3$,55F?,-=5,-4F4,,,+#?47?GG?5,7E5,-,7=,7E+#57?GGG=-7HG5555I`GGE,#57555G5-GYGGE5GRPPG5,#GE755G5-FIYYYAW>?G7O4+G5555GE7AYbYYb^?FE7PG355G57GGFRbaYZb^GG?5HO3-57G5GQZZaYPQR?GHG56?;55GYGHbbbaYXOQYHQQ?GF;565QaQbbbbZYYXQYYZE5GC7?GJaYbbbbaZaXYYIbE7GCJWGZZaZbbbbbaZaYYZVGFC6V>bbaYZYbbbbbbbYaFGFC7VIbaYXZbbbbbbbbaaIGEC7PQaYYPQbbZbbbabYaGWG3EHQaYXPZbbbbbbYaZaGY>3FAQaXYPZbbbbbbbZbaAa>;EFObaYYaZbbbbbbaYW>G5C5G>BYZZYZbbbbbbYYOF?GC7EAAPYbZbbbbbYa`HIGXWC5G?IQYbaZbbbbXYOG?GGOCGGGYbbXaYbZaYYZYN?GI?;?ZWBabXYYIYaYYZaVAbY?;?B?IQaOFYYXQQXQaYZaGEC5>EG?HOGZaWQYOPaGJ`G537>FG?PYYXaGYbYZ^Gb_G5CG>GG?IYYXQYYZ^YbWV?GGCE755G>?GHPbbbGGAY?7GE3555->G?OEHZZ^G7GG>55535557GGFO7G>G?GFGGGEGG355FE5GGGHF>?GGYGGE6G5+55GEE5F?GY>GGGWGE555537D5E5E6>FA>GGF?GE5GGGCE-,57E7>>>GGGGGGG7GGFCE5,,-GG?G>FGGF57G5545364,4%GG55F>GG>G7=54,-37E55,7=557GGF>>E5-55537555,7G45575?FE-4,5E73--,-E57555557E4,-54-5+$,,/?4555575E4,55E5,,+$,,555-E57E5E,,554>5,+,,$,,5-55E54,,-54,55,+,,-,,,,,-454,,-5,,5,,+-5=,+,,,-454,-4,,,4+##464+,,,5-4,,,,-,$,,###,,,,,,,55,,,,,-4,,+###,,,,,,,,4,,,,,-54,+,+#,,,,,,,,,,,,,,,,,,,+####$,,,,,#,,,,,,,,,########,,$,,,,,+,+##$########$,$,,,,$,,##############+,,,###$###########,###$,##+##########', 'Etq': "#+#,#%,,,,.,+,,,####CC$,##$-6<-,6,,,,,+#$###,,+$,,.>>->.@,,.+#$,++$4,,,,->>><PP,0.<$,,,+.4-40,->,N@,,0L.,,,###6,.@P,<.,,55WP,0>,,,+#,,>PPP,4:bYUYPPP@PN,,+,,,0,7Jb557G90PNL0L,,+,,%5Ybb:['$+9@P>P,,,,+.:YU7C[3b#A\\I6>@NL,,,+,1WC+#C<G\\2\\I6>PP@,,,#0MWA>*#>CJ,-I8@PL>,.<3PM394:+>$'G+E8PPL.>>>;PMW.+_#A547#%TPPPN,,,+PLW&/[5A<.<_%TPPN>,,,+NLUC*6=9=54:C]PPN>>>.+PL9#J=59U5.5b5@NP>N,.;,>9C]=5AV>>%2]>>PPN<,+,09G]6>AYAU53bPNP@PN,+L01J55AYYY=54J@@PPP>>+>PQ_56AYYY>>>A\\>>@N<>;0PQ_56YYYYYY>:Jb.PP@,+,PM_->YYYYY=5*7:bD.P,K0PB]>YYYYYV56E3/_a]40K,PMV>>AYYYV=%E5?['9Z5+,PLb%56YYVV4:Ea?_#'EZ+P>>:FEA>Y>5<:']+J.='UK@>P5]/=5A=5,_'UC*4b/TKPNPIJ]459=-=[#54*D]%TKP@P9Cb546?.:G'967D<I8KPPN93GF=-U4J%;I5=_/90K<>P13#G-5=#]%4F5-_'50K,PP1W-2\\#<#\\3&I557'UP;0PP-W>4J#5JC6<IV=:EUP;0L@MW;&/_-G+'G66;:]6P+PN@LW3LC:E_7]97E=5]8,+PP@LW%'G*bb_56YV54]8>;L0PLUG9U5b9YYYYY<+b.>;P<0PaY5Gb.>AYYYAY=b,PKN,0P%0-3*55>YYV55AW,PKPL0PPN97'556Y>V5E*\\.P+N,,@P>9C'F56V5>7.b4>>+N,,,>LUF?\\=6U5657I$,,+,,,.>KW8,G-95-42_5-,,+,,,>>-W;%/+656=]'_>5$+,<,<,1_.=*#6D+bC%[>5#+,P>.,J=C#*[=#JGC%4=-#+,.>></9Y7#[3J\\$;I4=+##,6,,<,,555_7b&5;I4<###$,,,.,,,/EbJ$%;39$4###-$,,.<,.N,Jb7C.7U$4-G#,$,$,>,,,,,-b]7CU5E7GC+###.<,,,-,N,EYYS/GGGC####-,.4,-,,,,'5[#'GGC####,,-+5,,#$,+'#'CGGC####3$4,,,+#$,#$##7CG#GC####$,,,#,$,###%GGG#", 'Esp': "#$54>>?GGFG>>>>>F>>>>;#'58>>?GF?F>>>>>G>>>>;##-5.>F?>>G>>>>>>>>>>;S#%5.>>?F>>>>>>>>>>>>;[#$54>>>F>>>?F>>G>>>>;a##54.>>>>>>>?GG,.>>>;b##-5.>>>>>>>>GF,.>>>;bS#$54>D>FG>>>G,.>?G/Cb[#'58.<G.?F<,><,,/F>+bb##-5,<D,,,D,>>,,//,+bbS#%54,,,,GD,,,,,,,,+bb[#'58,<,,,,0L,,L,,,Cbba##-5L,,,,0,P,0L0,,+ZbbS#%5P,,,,,,PL,PP,0KYbba##58,,L,,0PLPPL0PKYbbb##E5P,,,,0PPPPL0PKYZbbS#$58P,L0PPPPPPPPKYYbba##55PPPPPPPPPPPPKYYbbb##E5PPPPPPPPPPPPKIYZbb[#'58PPMPPPPPPPPK/YYbba##M5PPPPPPPPPPPK,YYZbbS#$58PPPPPPPPPPK,IYYbba##-5PPPPPPPPPPKD/YYZbbS#$58PPPPPPPPPK.<IYZbb[##-5PPPPPPPPPK<<KYYbbb##$58PPPPPPPPK,,/YYZbb[##-5PPPPPPPPK,,,IYYbbb##(58PPPPPPPK,,,/YYZbb[##M5PPPPPPPK,,,,IYYbbb##(5PPPPPPPKD,,,0YYZbb[##PPPPPPPPK,,,,0QYYbbb##(PPPPPPPKG.,0PPYYZbba#(PPPPPPPK,D,,PPQYYbbbS#PPPPPPPK,,,GPPP)YZbba#(PPPPPPK,,/,,PPKYYbbb_(PPPPPPK,0L,,0PPCYZbbbHPPPPPPK0P0,,,0PP)Ybbb_PPPPPPKPPL,,D0PPKYZbbbHPPPPPKPPL,,/0PPPIYZbb]PPPPPKPPPL,,,0PPPYYbb]PPPPPKPLPP,,L,PPPKYZb]8PPPPKPPPPP,,,0PPP)Ybb8PPPPK,P0PPPL,PPPPOYZb8PPPPK,00PPPP,0PPPPKYZ`PPPPK,0PPPPPLP,PPPPCY_PPPPK,,PPPPPPP,PPPPP#WPPPPK,,P0P0PPPPPPPPPK#HPPPK,,,,,PPLPPPPPPPPODLPPK,0,,0PP,0PPPPPPPPPPPPK,,,,0PP0PPPPP,,PPPH,0K,,,,0PPPPL,,P,0PLL,,,+,,,,,,0PL,,,,0L,,,,,,+/,,/,,D,,,,,,0,,,,,,,+G,,,,,D,,,,,,,,,,,,,,+>,?G>>,DG,,/,,,,,,,,,+>>?G>>>G.<,,,,,,,,,,>C", 'Fsi': "#+%###,$+#$,%3%?G?GE#+#+$+$##+#,,+55%GF?G3$+$-$,#$+,,,$,5E5>@?G3,+#%#+%$,#%E5#%5F>PGG3$+$$++3#$+%773%GF>XG3#$+,$##3+$,%7GG5GF@OE3#$+,##&;#$+#%F?GGF@O5#$,#,+,&3+##+5GPGG>PG3#,,#$+#@3+##$'GA?F@VG3#,-35+#N##$#,#GAV>QOE##,&#+##K+##,#+FAX>Y?E##+##+,#$,##,+%F@Y@XE3###$+,+##$#$,+#F@XQVE###,,+##,+3,#+$#FYXYVF$#,,+#%#$####,+#FYXXVF$#,###%###,+$,#%@YQVNF$+##$+3$+##+$,#6@YZV>@3#$,,+3$+,,#$,%7@YZV>VF5$,+#$,$+##$+57PYYYQVGE#,+##,$##$+557PYYYYN?C#$+####$,,6=>>QYYXP>?3,###,,#$,+5@NPQYYXN=53$,,+,#$#,%>@?@YYYPNC%$,+$+###3,%>P@PYYYPN##$,####$%$#>@PPQYYX?M#$$+,###,+$+>@PYYYYNFK#,,,,+;###$+>@QYYYYNP4+#,##+;$##$.=@QZaXYYS,+#+#+$+##3$0=@QYYXPK,,,,#$++##63$(N@QYYY>4#$$+##+#+#F#$8PPPYYY=$#+#######%=##@PPPYXYM6#$+3$$,3#6K#+@PXQYXQXM##++3+#D+@C#-@QYZPPPX$###+#-73#>##%PQYZPYPM#4###$%>$+$##>PQXZPZP=3,###,6;,+##&>PZXbPPV53####,A4###,.@QaPbP>V5###+C+P$+#$,@PRaYaPPM##$##C#6,,##$@PZaZaPP;,,,#%3,+,##54@YbabaQX>;,#$'###,##5%PYbbbaYV@$+##=#+####3&QabbbYXPN,,,%3##$####>QabbaZYQM,,#&K+C,++#+@Qbbb`bPN;,$#%3####,+1PYbbbZ`P=#,#++#$,#$++0PZbbbZXN><,-####+###+0PbbbbbXN6,$-%$######+0YbbbbbX;N-3###3#+##,#(ZbbbbbX@<%#####$#$+,#@ZbbbbbXN,-##3#%$###$+@ZbbbbbP<-#%,+,5,##$$+@ZbbbbaP,%45,+#####,$#(QbbbbXM##$##35$##+###&PZbbaP;3+,,%55##3,#+##@PYAXN#3#-+3######,%##.@N@N3+%5#&3+#+######", 'Ftq': "$#$54+#>#$,#>>>;,54#,+$+,55,&>##+&>>><-54#,#$+,544&>###>>>>;-54#$#,+-5-+>>$#>>>>>;,-,#$#,#-5-&>>'&>>>>>>$,,#####-55#&>>>?GG>>>$-4+,#;;-55,&?GGPGX;>;,-5+$+&;-5MGG7GGbbH>>$5-54#+&>'GGGGNBbbbH>>-5,54##>?POJJBR>bO2`;>%4+,+##>@JbbbBR_B_*HC>;+#,&>#>?RPP^bPbFbb`C>>##,>>;>?R]J_bPbbBb_C&>#$3>>;>?O`bGbQRb^b_K&>;-4&>;>#O`_JPQR`RBbK&><54+>;>+Ob_`RQRbb^bG&>%55+>;;#GbGPbQX``bGG#>$54&>;;&Hb@PRQXPPb_J#&;-+>>;#;Hb@`PQXQXbbG$&>#>&>;;>HFR`QQYYPRb_$#>>>>>;>#@GRPQYYYPPPPF#>>#&>;>$(JR`PYYYYYPOGGF>;+>;;#'JbPYYYYXR`_FGGF;,&;;+>HQYYYYYPR`GJ_BHGD#;<,#PPPPYYYXR`?HRJbHOF;;4+G```YYXXR_GHRBbbGO;$4.C``QPQP`RObHb^`RbO;-5+G@bPbQZ`bJ_GJ^R+_N#-53H_JbRaRbPJbGb^JH_K#-54HJ?`b`R`_JbG`RBR`C#-54@J_`P`XRGbRHbRBbH##,-+@Jb?bbZbJbRHb`JbG+#$,+?R`^BbRbBR``Jb_bO#;<,#?RPbGbR^J`R`PRNbK+;<,,'RR`_B`_b__HHR_?D+;<4,/RRbb^`?GGHGHP`GD+;;55.O_bb_??GGHQXbRGE+;;-5&OGHOGFHQYYYYRbGU,#$-5&HPOb?`PQYYXQYRG54#,54&FF'J^bbPYQXPbPK54+554>>#Hb_b``XPXRb_<54+-54&>$HbbHbPXbP_`?<55+-95&>,O`RBR`Z`PbNH%Y5+595+&'ObbJ`QRbb_BG5Y5+-95,&'RR`_bQR`PG_G5U4#<55,<Hb`R^bPbbGb_G-53;E55+;GObb_BRb_bb_C-54;5555>'_GGbJR_BbR`C554#5555>$8JGJ?b?`bRH<595+5554>=5YOG?FbbRRH<55U35955&=9YU6F?Gb`bR<55535955>%9YU5>8FGG_N$55535954+=9YY5E5XGHHN$55435YU5+=9YY355YYOJFE55-35YU5&%YYY755YYY6>=5U539YY3.=YYY75YYYY4&;9U539YU3/=9YU559YYY3>D9YY3", 'Fsp': "######,%+##$#,&>;+#####++#######+,##>>###+#+$+$+#+>>#,,,+#####,#$+###+#&>>;#$##+###;+##+#$+##;$><+$###>;+;#,#+$$##$+$&;+##&>>;,?#$$+L###$#$&V;###AV#$)##$+`+,#>;&>V;%##>#C+?<+,#R,##>#&AV;P#+;,O,&X#,#.L#&>;#A>&;#>>$'#+Y##++##.>;+>>)V&>>#&#+P##++,##>;#++AW>Y>#G$,+$++#+######.>YAYV&S####+###,+;+>>#>IYYY>$+;,+####$-K#&>>>>AVAC###$#&#&###++#>>>>>>###++###+&$+###$&V?V########,,+&$+$#(;>VIaC$,&;;$#,,#;+$+#>>>>YRS#$&;;#,,,#;+$##>>V>YY;####;#$#+####$.#>YVZY>>>##$,####,##$+##YYZYAV>##$,##$+###,(&#IYaY?Y>@#P$;####;###&&IbYV'V<Y%##>#;#;$##M>>ZaYY?U$A;+K&$##>++#%NYZbYYY>#AFK###+#P((%'3YbYVAY>(YV;%####$###78YaCW>YV&YX####$###+%G)ZY#X&YV<IX,8$>###%+'WYbW>S>YV<AS%##&;#$;#7YYbWYAAY>=N8KM(&>#$#%IYZbYX>YYY>$0K3$+>#%&7ZYbbYK6AYYV=#-M33A;(KIZbaYC%M&YaYG?(M33>S#7YbbaX%8L&VYYAYV4-5&S,7ZbbaC5-P8YYYYY;,53$#P7ZbbaM8MM6YYYYY;,3K3#%GZbbYM8MM8YYYYVF%43-##9ZbaXM55M49YYYWY%,5+##OYYWPMM-8MQYYYYI$5,##OPIWP8MP48MQYYYYA5M,PKPPMM58M55MP9YYaYA%MPPKP555P8P5P479YYbYIE55(K85,-@5P8P588YYbYZS,-8358M5585P8585XYbaYE5P5355P4-P858L84MIbbaD8M53-5M-5P88O5MM8YbbaU-M5+55P58PMPO4PL7ZbbaU8M534-5M58P588HHOZZbbX55,34-4858PM58PP8ZbbbY45,3,588M8M8M5855YbbbW854+,L8547E548PP49ZbbW844+%458M8MM48MP4/YbbY%45#58M8M#8PP8485PYYYX5P5#%-5-P(8OP=555OQYYC-5-KP5-8N8PPMN855PPOPP5-8K(858>M558NE8H558PP588#", 'Tev': "$44,+##%%>HIPK>$&#/C##$-4,,##$->HXPJ>+>#%K##;,-,,#%$+>PHP&B2B3$D##>,,,,#55-^OPE6<&;#G+#+&<,,,-#5+`OO#>[^['L#%3&;4-+,5%+`HR3>;b3/C#,+/&$,,,55-PPb4b[]37+%4+HF<,4$557OO]5b:]37+/D+#DB45,54PHR]5b2559OL/[;G&],-7PIPb^-]^55$G+0;>72;5,POXObb4Db555,3_C#YG^]0QYPJ]b0P]55]42>C,,72]8QHP:]_YH]555,^=C$*?L:7QP-:]QQO555-bBO#[,/_G]QH5:_HQR555:^GD3B]2]7EGHM5HPIL555bbW4+B^<:]-0HK\\OMIO:55bbD,3B^B*b58OP0X-QH55:b]HE3>>^=558QHQP5GXE5:b%4GC^>bb]:\\PXWL58XM]5]55_Cbbb^b55PIXE57QO55b5:'[:bb^b55/OX-54QP-5::b`C55:b]5558P555PXM5:bbbC55555]555E5550WL5:]b5+]:555]]:555558QP5:]55+bbb555:5554O54OXM5:bb[^b]:5555557PM58WL55bb[>bbb:]5:554QPG-GP-5bb[bbb5:b5:557QGPPHHM:]b3,-]5555:558YPLPHHM55535555555555HXE57GG555535]:555:554QG55555555-+535]55]558WM55555:]b53,5555]555QH55555555b:[-55b]5550IL555555bb5:[5:b^]550QXM55555:^bb##5bb:]5HOYP5555555bbbb3^B55-:PQYO55555555bbB[b]4:D57HOXR54PE555bb>[]30'Z55:GPP5GWM5555bb[43D`2%:55HOPGIL5545':[4%GG`L:55:HPGQP5594W-[51FGGW]55:5+5/XE51GI-+_W>X-/555b]b58XR5Y*'D+?F[G:\\L55_P#,4QP5L55D3>J\\+^bG55`GHPPQH-C530+=J,,^]7-5_WOYYYHO%#-9+=$,2B\\5,5_GPOGPPO4-HG+7$,&>45W:bIM0PMbF\\O,##S,+>B57T6bGO5:5:><G###,,&>\\5,M6B\\O5-3:>ID###,+^>$%+'>B_PC4%-;HE+##,+>B-%+$>B6GO$-%;WB+##,&><+$55>B.@O--#;G>43#+>>%+$5:>>&_P,-#&G><3##>>,#4#*>B&=P,+%'K>;,#&>;,#-#6>B.\\,5+#$F>>$3", 'Tvf': "$,,6'F7$'3>E4,=,'HD,,+$,T5%:</-_FK,G-<'O$T,#$,12]:?GGE;'<>-</<T+T+?',2_$'FD$D2]7F4/D,,,+-1,-4$+=4/,?6=/4$/,,D+WIG/[/G55///]-/61,/DI+T<G/6/E7=DG/]:'5,GG'C+,4+.7/B6/7FF7E@5,GCG,C/4H=</7V7?=D+T8^',57,CW7N]'F9YEC?$$T7]FG57,+V4J4G@C1TS#G1Y05O'6?/+.4J\\T='1T$GHG)VD5,`G'+&6?:G5')Y+/GGOYDG$_G,+E7,U]5'DYY/C#HCYW$\\/GCE7D,:_C#YY/G##YY)Z\\FF;=8?5:;C##YTGCYYY)Z7>>CB4.]D+##G),,1YYS)2?T?+:<-C#######YYYYS)=G,G+]F;'GG$###IYY#YSY5,G,C_-GOCH#)+')YY#)SY6/D,;^='G###Y#GYYYS#YT4F7H;5G$####)+CYYYSG)T4E6D+>?#####$+#YYYYH)YFJ6<+=6S######)YYT,$T)UB>6C5GY#++D,+1YY#)YY1WbD?+_/A+,'C++YYTD)YYYW]G$C4B\\T#G$+1YY'G)YY1Z6@DCb55$#$$,1TTFG)YTY=PFD+D/:_Y#D111W>D1YSY0O/DC+G=]Y'D1#Y'CYYYYYV>G,+<=6RA(D+#SG#+YYYYW>>>CGF6M^HD+1/C'$1YYYU<-b[/AND:O$YY1TGCYYTYU?E<;Ba/<6C+)YY''#YYYYUE5?C7F.,5TCYYYG##YYYYUb5?CI/>I2[)YSSC#)YYYYZ^GC+>?P<23YYC###YYYYYZ6?FK^&DG=9Y&GCG#YYYYY-GD/;?EG/B9TC##P)YYYYY@'D,C>?GG=Y###SC,$YYYV7F,?CF?7G5YYYYS#)YYYY2@O,>CF>6FbDCYYS$YYYYY=H>N=;NG::]5bAYTYYYYYYBNGF>;G,-=6/:]Y$YSYYYYb8#%G+,/D/DG?b54YYYYYUbNG7,+,$GD,=G].MYYYYY::+G4,+WDG/,>,]@E1YYW=5RGE=,+/DGD.?/6@D\\Y-:5NRG2?/+,T/D/F:7>6b5:_@O],/<TC1T,/,E5>?F5>,`P=_/I=T+T$/54E<.7F6,G=5b;?/?D+1,/:]G<.]5<G1.E5,+.$A;$1+==6;-4GDG1/D,,CG$4C$,+-C=5B4/1/,F>,+57U:C$S1UO/Eb;,,,/@?G'=%6T+,,YJ_,+GDC/,/>GF,H;;+C,/&]b,GG(?GGFGD/GG=,W+", 'Tfe': "#####$5%&;$C#5$############.,$+-'E4+533#+######%#.<,,5QX#,,#3%%+######+<.<,,aX3,,55+#>#####3-,,>60IZ]4,,5+6=#####556<.,PIX`4,>554+##K%34-.>>>bYZR>,>-,35###%54-.>>B_YYR^>>-,-5##%53-,.>>BQWJP^>><,,-###5,$.>>>bbbO`P^>>>>=5+#5-4,>>B`R`_HPN>>.b<3#%5,-6>>BPPPaZPb>>4>=3354,,,>>@PPPaWP`^>>><53#554>,?``PbaY`R^>F5,4#$3,4?>FPPPbaYJ`N>>,,,+,,,<1.@RPRb_YZPO>>>>.+,-$,Y.@PPR`aYWPO>><5>++-4=/GHbPPbaYJPQF<.5,+%6-6.V@_P`bIJJP_V>,,4+-5-..F@O`bbGbGb_W><<6+,4>=6>@_HP_J_GG_F<>>,;4=.-.>@abbGRbGG_F`><-33G,5?G`GRGGR_G_aY^>>=+,>>.>>PHPGJRIJG_GF>>>S4-..F>Pb`_JRGJb_GF><>;-44>>YP`bOHR_GbaW>>,4+,.>>?GRRJ_HRbGGOWF?>,;4,.>>?`RJ_`__JGbFF>.-+-,,>>>HPJaJ__ZbR>?>.<;5,.>>GJPb_baaZGbFYF>>+-.>>GGJbbGbWbJGOWYF?\\;-4,>?IJbb_JWJJ_aWB>>\\;6<>>F_Jbb_aWZJ__?F><>+.>>>G_GbbbIYW_GGGGF>>+4>>b?GGbbGYWWGG_GW^>=;54,AWGb_GIYYYGGaYH><-32^F@IGb_GGGGYGGGJL>>>+-R_YGGJ_GGGGIWJGGGGG\\+%38R_WGGJGGGGJb_JbG<4+$=40P_YGGIGGGJGGPG`5,+$-6G`PbJRbGGWJG_GGG^>+>BGGGGJGbPb_GJHG_GGGJ[1Z``baYYYIWaYWbbb_J^>+$YJPRYYG_YJ_YYbRGJ^>>+5AYJ_GGbIWPbIYGJ_Wb^<+44aWbPR_Gbbb_Y_GbIWb>+4,.GJ_YZbbbJbIGWG_YW\\34,<2JYZIYGbGJ_WYW_b^<3%4,0OWPIYYYIYJbaYJ>>M#545+_`PIYYXOYG`bGYJ,53%5,*HPPaYYP_IYGbbIYD%##%+?_J\\7YZJG_YWJ>bGYC####1WD#'Yb,*JaWJ5,.BG3##%Y]##$Z+8#/GYZ%#5#####)X#####%##%?IZ#%%####$V######5####_Y3######$#$+#$####+##%I;##$##", 'Lum': '#,5+##4$3%.#,54$+,C$56$4-5#,##$5.##$4$-+#$-.D%.5,L,GM4>-%#-5N(K-4>5,ID-.D/#-?53A?54?&D,A-IYV<4?GC,A5.YVL,-GC5A55APL,LOCMA551MP<<OGGY54.,P,.AYVY,484&P?IVPA$404..V<>PA#.,<7F<.F<YC(4<AF<>??YGHN8G><@PGYD0PN<?@PO>YbP0AN>F>??Yb_NXP>AFFAY2\\OHLG?YGYYP>IHG>>YYYY.<AD>>AYYYY40APN>NYYYY58F0GGGYYYY4>IHGGIYYYY,>>WWGYYYYY>>YYYYYYYYY', 'Obs': "#$4?KGWJ:'>:\\-GCWII:)>+$-7C'CD:)>A],9?)HY2'>>:,2?#IO,)>>;[-/Z'OSY>>A#-aJ_(E/>>>Z,[;[#QW>>>;]:G[#YQ>V>>%:/**'Q>?V>B59J*`Q>II>>5[H#)Q>)XN>U5Gb`G>*'I>S5_R[G>(*O)A5`C*G?[R[#YU[HKOGb_S()Z3GPGG#[SPXSb'COGQKbS(OR'H'G[Y*b'O;_GO?5aS[#GF(GI>bb)I*`G?FF>b]b1Cb_>F>>]]4,'G*&>>>#%b1KG?(F>>>AX(PPF>G>>>>AGGOGV>>>>>>>>>>>>>>>AYWY>Y>>>>", 'Pio':"$5565=55557$65756558=7%5WW9E=5M53E=;+UE>85=CD5TKUI6R==C%7J#EG:]=5I%59G=E8555IS6F=5=L556)E>GGU4-56B)J>=G685575Y*>555M557GSD=558-5GGG)$=65\\5IGE5Y$565MGG5?7)D5587GE55G)$65LG7=7E3Y#5<.EGEE=CY$587FGE=?C)$5MG6ECGGGY%:/E=GCWG)Y%07F5GGYGYY$M?67GG)Y#Y(575G7CYYYY0=G5GG'#YYY,=G57YC#YYY$7G=GY)SYYY$5GG#SYSYYY#C))Y)YYYYY#C))Y)YYYYY"} Noms={'Vsi':"Vent", 'Vtq':"Attaque de Vent", 'Vsp':"Change", 'Esi':"Eau", 'Etq':"Attaque d'Eau", 'Esp':"Prisme", 'Fsi':"Feu", 'Ftq':"Attaque de Feu", 'Fsp':"Double", 'Tev':"Volt", 'Tvf':"Terre", 'Tfe':"Glace", 'Lum':"Lumière", 'Obs':"Obscurité"} Images=sorted(tuple(Noms.keys())) # règles en français Regles=("Joue une carte avec le même\n élément que la carte en jeu.\n\n La couleur des bordures est\n différente pour chaque\n élément.",\ "Si la carte en jeu est Feu,\n combat Feu avec Feu.\n\n Tu peux aussi utiliser\n Double et Glace.",\ "Si la carte en jeu est Eau,\n combat Eau avec Eau.\n\n Tu peux aussi utiliser\n Prisme et Volt.",\ "Si la carte en jeu est Vent,\n combat Vent avec Vent.\n\n Tu peux aussi utiliser\n Change et Terre.",\ "Des cartes du même élément ne\n sont pas toujours nécessaires.\n\n Il y a aussi Lumière\n et Obscurité.",\ "Enchaîne les tours en jouant\n des cartes.\n\n Le premier qui utilise toutes\n ses cartes gagne.",\ "Si le joueur précédent joue\n une carte d'attaque, alors tu\n dois piocher 2 cartes en plus.\n\n Oh, mais attends !\n\n Utilise ta carte d'attaque si\n tu en as une, pour transmettre\n l'attaque au joueur suivant.",\ "Tu peux passer ton tour avec\n shift au lieu de jouer.\n\n Tu dois piocher une carte\n lorsque tu passes ton tour.",\ "Tu peux tenir au maximum 15\n cartes.\n\n Si tu passes ton tour\n avec 15 cartes en main,\n alors tu perds la manche.\n\n Fais attention !",\ "Pour les règles de chaque\n carte, choisis Cartes.\n\n\n On joue ?") pos=-1 while pos != 2: fill_rect(0,0,320,222,"w") draw_string("WHIS",140,30,"purple") draw_string("Cartes Règles Jeu :)",30,80,"b") for i in range(5): IMG(Images[3*i],18+60*i,130) #fill_rect(50+100*i,50,20,20,"rbg"[i]) chg=1 while not valide(): if chg: for j in (1,0): for k in (0,1): draw_string("[]"[k],15+80*k+100*pos,80,"rw"[j]) #draw_string("]",100+100*pos-10*(pos==2),80,"w") pos=(pos+chg*j)%3 #for k in (0,1): # draw_string("[]"[k],15+80*k+100*pos,80,"r") #draw_string("]",100+100*pos,80,"r") sleep(0.2) chg=keydown(KEY_RIGHT)-keydown(KEY_LEFT) while valide():1 fill_rect(0,0,320,222,"w") # pos = 0 : cartes pos = 1 : règles pos = 2 : jouer if pos==0: p=11 chg=1 while not valide(): if chg: p=(p+chg)%14 draw_string(Noms[Images[p]]+" "*20,20,60,couleurs(Images[p])[3]) draw_string("Utilise cette carte\n "+("si la carte en jeu \n est "+("Eau. ","Feu. ","Vent.")[("f" in Images[p][:2].lower())+2*("v" in Images[p][:2].lower())],"avec n'importe quel\n élément.")[Images[p][0] in "LO"]+"\n "+(""," "*25+"\n"+" "*33)[Images[p][2]=="i"]+("","Change "+("Eau","Feu","Vent")[(Images[p][1]=="f")+2*(Images[p][1]=="v")]+" en "+("Eau. ","Feu. ","Vent.")[(Images[p][2]=="f")+2*(Images[p][2]=="v")]+" \n"+" "*33)[Images[p][0]=="T"]+"Le joueur suivant \n doit piocher 2 cartes."*(Images[p][2]=="q")+"Change la carte en jeu\n en l'élément choisi. "*(Images[p] in ("Lum","Obs","Esp"))+"Donne un tour \n supplémentaire. "*(Images[p]=="Fsp")+"L'ordre de jeu est \n inversé. "*(Images[p]=="Vsp"),80,80,"purple") IMG(Images[p],20,85) sleep(0.2) chg=keydown(KEY_RIGHT)-keydown(KEY_LEFT) while valide():1 if pos==1: p=-1 chg=1 while not valide(): if chg: p=(p+chg)%10 fill_rect(0,0,320,222,"w") if p in (1,2,3): Liste=("Fsi","Ftq","Fsp","Tfe","Esi","Etq","Esp","Tev","Vsi","Vtq","Vsp","Tvf")[4*p-4:4*p] #(("Fsi","Ftq","Fsp","Tfe"),("Esi","Etq","Esp","Tev"),("Vsi","Vtq","Vsp","Tvf"))[p-1] for i in range(4): IMG(Liste[i],30+70*i,30) Nom=Noms[Liste[i]].split(" ")[0] draw_string(Nom,51+70*i-5*len(Nom),95,"rbg"[p-1]) if p==4: for k in (0,1): C=("Lum","Obs")[k] IMG(C,80+110*k,30) draw_string(Noms[C],67+100*k,95,couleurs(C)[3]) if p==7: IMG("Pio",140,140) draw_string(Regles[p],10,40+80*(0<p<5),"purple") sleep(0.2) chg=keydown(KEY_RIGHT)-keydown(KEY_LEFT) while valide():1 scores=[0,0,0,0] jr=randint(0,3) #rejouer=0 for manche in range(5): # constitution du deck de cartes, nombres à ajuster Jeu=["Fsi","Vsi","Esi"]*4+["Fsp","Vsp","Esp"]*3+["Ftq","Vtq","Etq"]*2+["Tfe","Tvf","Tev"]*3+["Lum","Obs"]*3 # mélange/brassage du deck for i in range(100): Jeu.append(Jeu.pop(randint(0,(len(Jeu)-1)))) # composition des mains Mains=[[],[],[],[]] for i in range(4): for j in range(6): Mains[i].append(Jeu.pop(0)) Mains[i].sort() # préparation du plateau sens=1 #jr=(jr-sens*(1-rejouer))%4 clr_choisie="" NAtq=0 Perdant=-1 # le joueur est le numéro 0 et sa main est Mains[0] fill_rect(0,0,320,222,"w") IMG("Pio",172,60) # icône de la pioche IMG(Jeu[-1],114,65)#Aff_carte() for n in range(4): actu(n) #Aff_plateau() while not (min(len(Mains[i]) for i in range(4))==0 and NAtq==0) and Perdant==-1: # tant qu'aucun joueur n'a gagné rejouer=0 if Jeu[-1] in ("Esp","Lum","Obs"): clr_atd=clr_choisie elif Jeu[-1][0] in "EFV": clr_atd=Jeu[-1][0].lower() else: # carte de transition clr_atd=Jeu[-1][2] actu(jr,(210,100,255))#Aff_Plateau() sleep(0.5) tr_fini=0 deja_pioche=0 if not cp_ok(jr): # si on ne peut pas jouer, alors on pioche, ensuite si on peut joueur, on joue sinon le tour est fini #sleep(0.5) pioche(jr) if jr==0: #il va falloir choisir la carte à jouer p=0 chg=1 while not tr_fini and cp_ok(jr): L=len(Mains[jr]) D=min(50,251//max(1,L-1)) if chg: for k in (1,0): fill_rect(10+D*p,200-63*k,47,10,"w") IMG(Mains[0][p],12+D*p,140+10*k) p=(p+chg*k)%L sleep(0.2) chg=keydown(KEY_RIGHT)-keydown(KEY_LEFT) if keydown(KEY_SHIFT): if not deja_pioche: pioche(jr) chg=1 else: tr_fini=1 if valide(): for m in (1,2,3): if condition(p,m):# or condition(p,2) or condition(p,3): traitement(p) #fill_rect(0,125,320,97,"w") #on efface les cartes de Joueur 0 elif cp_ok(jr) and not tr_fini: # C'est un autre joueur qui joue for m in (1,2,3): for i in range(len(Mains[jr])): if condition(i,m) and not tr_fini: traitement(i) break sleep(0.5) #Aff_Plateau() #sleep(1) actu(jr) jr=(jr+sens*(1-rejouer))%4 #calcul des scores : fill_rect(0,0,320,222,"w") draw_string("Fin de la manche "+str(manche+1)+" sur 5\n\n manche total",40,40,"purple") sco_mch=tuple(sum(2+18*(carte[0] in "LO")+3*(carte[2]=="p")+8*(carte[2]=="q") for carte in Mains[j]) for j in range(4)) #if Perdant==-1: # scores[Mains.index([])]+=sum(sco_mch)#*(Perdant==-1) for j in range(4): #scores[jr]-=sco_mch[jr]*(Perdant==-1) Sco=(((1-4*(Perdant==j))*(sco_mch[Perdant]//3),-sco_mch[j])[Perdant==-1],sum(sco_mch))[Mains[j]==[] and Perdant==-1] scores[j]+=Sco draw_string("Joueur {} : {:>+4d} pts {:>+5d} pts".format(j+1,Sco,scores[j]),10,95+20*j,"b") jr=(Perdant,(jr,j)[Mains[j]==[]])[Perdant==-1] sleep(7) #sleep(2) #draw_string(" Partie terminée \nScores : ",40,40,"purple") #for k in range(4): # draw_string("jr "+str(k+1)+" : "+str(scores[k])+" points",60,100+20*k,(("purple","r")[scores[k]==min(scores)],"g")[scores[k]==max(scores)]) #for carte in Images: # IMG(carte,5+50*(Images.index(carte)%5),10+65*(Images.index(carte)//5))