GFA-BASIC WIN300NA humaint1lmaxGamily 6 Model 6 NBscrxscryTTCTJCPX1CPY1CBMPxyafxafyJBMP1JBMP2iMJMmxmymkmx1my1 LogicalDCScrBmpBufDCBufBmpjxjx1playerposjxnewposjxpCMcyCBMPMLcy1cy2bmpNXNYRvHumainPlayer1OrdiPlayer2xxjkyyriengagnant StartPlayeroncjo1n Bestplayer1 Bestplayer2Playmin EnnemiMaxNrecGtotoposTlMFPfinNCPx1y1 TestPLayern4pevalevalmaxEcritureindexColc1c2c3c4c5c6Cvmaxaiexistnin2npartiesHx2nmenuiiii1y2okxoyoJ4BMP1J4BMP2npoopooV_insert V_descentemaxvmaxvcncsAFFSTAT inversionc7Afficher invserionvi OrdiNoStatlmaxWaNLMX1BoutonTHNbY1BoutonXBoutonYBoutonHaXaYaxa1ya1AApmxpmyBSbs1cxNGCcdcgNG1NG2NG0 ficstatopen oldafstat oldaffstatidebugBDcanalv1v2r1NCNDNENFpPartiePartie_RretatcaPaftemointMBficstatBoutonMessagelTitreFVersionficinificCMDNGArbrediTSAVETNH`TGHTSMjEvalPRCNumCombjxMCSba_x1ba_y1ba_x2ba_y2 CoupDonneCGCDCG?x?NINJNKNL Cjtmba_tba_l xlineinputNM7AFTABVSYNCDescente_jetonbmpfreeOrdiTSAVETLOADmessagegagnant EnrgPartieTest TestRecursifcreationgraphiques HDescenteHsupprArbre hdescentre JouerPartietestallOrdi_oldMAJstat Ordi_old2afficherAffstattmainaffmain AffboutonIniMenuAffmenuillumineBoutoncboxmessage testhumain MAJstatNew MAJstatOld AffstatnewStatPos AffstatOldXalertrgbxolor XalertAffTT TestaftabfunctiontotoTTtMarquerfuncitona filselectrgbcrgblireINI sauverINIbMinMaxNNNONPNQNRNSNTDescente_jetonVerif4 TestSiGagneraJouableMatchNulEvelPosya4pArbreCoupNumComb NcolVidesAffstatestpar4coup2CoupOldStatPosColonneGagnante CoupDonneCG Dans4poss estpar4possSMinMaxNU@ situation EtatActuel EtatInverse chainemenuS xlineinput/NV@CombColTOTO suitetestAffichageAlertAA1AA23 /NWDTMK9 PRcDZCTZCT*TZCTTPuissance 4 Version 2.2006H statv2.dat0 puiss4v2.iniL5$6$0 T-DEBUGY  :ZYYYYYdld oj*jonon **jPY*8 8~ _n`[[[[[[pp]Y^8 ZZ%$<[Z%$@\Z%$DlZ%$HmZ%$LnZ%$PYPYLYHYDY@Y<Y8pnZ$ Y8@Y$Y$Z%`$ 8  000000b S000001,000011,002111,012111,112111,212111,022111,122111,222111,000211,001211,011211 S111211,211211,021211,121211,221211,002211,012211,112211,212211,122211,000021,0001211S001121,211121,021121,121121,221121,002121,012121,112121,212121,022121,122121,2221212|S000221,001221,011221,111221,211221,021221,121221,221221,012221,112221,212221,0000022S000012,000112,021112,121112,221112,002112,012112,112112,212112,022112,122112,22211208S000212,001212,011212,111212,211212,021212,121212,221212,002212,012212,112212,2122121S122212,000022,000122,001122,211122,021122,121122,221122,002122,012122,112122,2121221E022122,122122,222122,001222,011222,111222,211222,021222,121222,2212222:,:`: :Z<PAUSE1'SousXPvautmieuxavecleschainesdecaractresT=_dosCmd$PAUSE1T=ZTRIM$(T)PAUSE1T=UCASE$(T)H="Puissance4Version2.2006"0="statv2.dat"L="puiss4v2.ini"=_X=_Y0=TRUE=1=2=TRUE'FALSE'Afficherlefichierstatendessous =TRUE'Messageenfindepartie='Player1%=Ordi%='Player2%=Humain%'Afficher%=TRUEIFINSTR(T,"-DEBUG")>0=TRUEELSE=FALSEENDIFOPENW#1,0,0,,,0DIM(100,4)DIM (100)DIM(7)'coupsslectionnspour@coup()DIM(42)DIM(7,6), (7,6)DIM(42)'tats+CoupsjousDIMP(42)'PseudosalatoirecoupsFOR8=0TO42'PR%(i%)=RAND(6)NEXT8DIM`(95,6)DIMp(2,2,2,2,2,2)RESTOREARRAYFILLp(),-1FOR8=0TO94READ<=VAL(MID$(,1,1))@=VAL(MID$(,2,1))D=VAL(MID$(,3,1))H=VAL(MID$(,4,1))L=VAL(MID$(,5,1))P=VAL(MID$(,6,1))p(P,L,H,D,@,<)=8FOR$=6DOWNTO1`(8,7-$)=VAL(MID$(,$,1))NEXT$NEXT8:'TOTO:DATA000000DATA000001,000011,002111,012111,112111,212111,022111,122111,222111,000211,001211,011211DATA111211,211211,021211,121211,221211,002211,012211,112211,212211,122211,000021,000121DATA001121,211121,021121,121121,221121,002121,012121,112121,212121,022121,122121,222121DATA000221,001221,011221,111221,211221,021221,121221,221221,012221,112221,212221,000002DATA000012,000112,021112,121112,221112,002112,012112,112112,212112,022112,122112,222112DATA000212,001212,011212,111212,211212,021212,121212,221212,002212,012212,112212,212212DATA122212,000022,000122,001122,211122,021122,121122,221122,002122,012122,112122,212122DATA022122,122122,222122,001222,011222,111222,211222,021222,121222,221222'PUTafx%,afy%,GH%(0,1),SRCPAINT'PUTafx%,afy%,GH%(0,0),SRCAND,'Test'Testaftab`'DO'CLS0'JouerPartie'INCnparties%'LOOPUNTILMENU(1)=4 CLOSEW#1'RUN<JR*d0l@~f|&LVhr$*266>>VVdnnv4v4@Vz ((@@XXpp&&&&&&,*,0<<VDpL,,&0&0&0&6&@.D.D.H.N.Z.h.6>DDPRN & <@D?]:pphYY Yh$ttxY YX]:ZYYYYYXYY |@]:: FPYX]4@]:: i@]:ZYYYYYXYY |5@]:@]:YpYY YpYY dA@]:DPHToFL$D$H$Lhl@YY@Y YDYY D$h@]:F@]:Y@o$hL:YYYY [C@]:YhYl>YY Yh$xYLL$D$H$LYLTYxt@]:YtYxx44@YxYtB@$|Y|0YtYx%t*&tJYtY|A$t@P@]:YX]Y#YYY@Y YOYtYY BY@YpYtYY BY0,YtYY BY4ZYYY@Y YYXYY |hZ$@]:YYX]:ZYYYYYXYY |Q@]:@Yp$p%YYhiY Yh @P@Yh?]]"Z]:?]:Q@]:%,Y0 Z:L] @]]"Z]:R@]:@]:%0Y0Z:L] ]"%4]:] "@]:YtYx$$@YxYtB@$|Y|pYtYx^%tj&tYtY|A$t$@]:YX]Y#YYY@Y YOYtYY BY@YpBYtYY BY0jYtYY BY4ZYYY@Y YYXYY |&@]:ZFt$YdHmQuitter la partie ?"qOui|NonqZ:Y^] poFlFHmQuitter la partie ?qOui|NonqZ:Y] ZCZ][)=PROCEDURE@D=01=""p=1=ph=0t=+ *hx=t=0'nombredecoupsjouARRAYFILL(),0 =@$SETDCX~BitBlt(_DC(1),0,0,,,X,0,0,SRCCOPY)DO2PEEKEVENTIF_Mess=WM_PAINTSETDCX20201~BitBlt(_DC(1),0,0,,,X,0,0,SRCCOPY)21'SETDC_DC(1)'AFTABENDIF3IF(p=1AND=)OR(p=2AND=)34P=D,T=H'IFMENU(1)=30IFMENU(7)=1MOUSED,H,L' mx%=MENU(2)' my%=MENU(3)ENDIF'ENDIFl=hh=MAX(0,MIN(6,DIV(MAX(,MIN(+7* ,D))-, )))'testhumain4ELSE'INCtoto%'SETDC_DC(1)45'TEXT0,20,toto%IF<2h=MAX(0,MIN(6,RAND(7)))L=1ELSE'IFncj%=2ORncj%=4ANDplayer%=1'jx%=0'mk%=1'ELSEENDIF'ENDIF'TEXT100,20,"mk%="+STR$(mk%)IF=OR=PAUSE2ENDIF5ENDIFIFh<>lTHENx=+ *hIFL=1DOMOUSED,H,LLOOPUNTILL=0'SETDC_DC(1)'TEXT0,30,"Mk%=1"IF>1t=xENDIF6WHILEt<>x|=MAX(-20,MIN(20,(x-t)/3))IF|=0IFt<xINCtELSEDECtENDIFELSEt=t+|ENDIF65SETDCXDEFFILL0RGBCOLOR0PBOX,30,+7* ,PRED()PUTt,- ,@,SRCPAINTIFp=1PUTt,- ,0,SRCANDELSEPUTt,- ,4,SRCANDENDIF~BitBlt(_DC(1),,0,+7* ,,X,,0,SRCCOPY)WEND'ALERT1,"Debut"+STR$(jx%),1,"ok",rien%=@(h)'ALERT1,"Fin",1,"ok",rien%7IF=TRUE'siilyaeuunedescentedejeton!SETDCX~BitBlt(_DC(1),0,0,,,X,0,0,SRCCOPY)70'Affstat'SETDC_DC(1)'FORx%=0TO6'RGBCOLOR1200'GRAPHMODE,OPAQUE'TEXTx%*35,0,STR$(@NumComb(x%+1))'NEXTx%'AFTABp=3-pINC()=h()= +STR$(h) =@$=+CHR$(65+h)'ALERT1,Partie$,1,"ok",rien%IF@(1)=TRUESETDC_DC(1)=1171INC,IF0=TRUE' OPEN"a",#1,"parties.dat"' ?#1,Partie$+""+STR$(gagnant%)' CLOSE#1LENDIFEXITIFTRUEELSEIF@(2)=TRUESETDC_DC(1)72=22INC0IF0=TRUE' OPEN"a",#1,"parties.dat"' ?#1,Partie$+""+STR$(gagnant%)' CLOSE#1LENDIFEXITIFTRUEELSEIF@=TRUEINC40EXITIFTRUEENDIFENDIFENDIF9IFt<>x|=MAX(-10,MIN(10,(x-t)/5))IF|=0IFt<xINCtELSEDECtENDIFELSEt=t+|ENDIFENDIF10SETDCXDEFFILL0RGBCOLOR0PBOX,30,+7* ,PRED()PUTt,- ,@,SRCPAINTIFp=1PUTt,- ,0,SRCANDELSEPUTt,- ,4,SRCANDENDIF~BitBlt(_DC(1),,0,+7* ,,X,,0,SRCCOPY)'IFTIMER-t1>500't1=TIMER'ENDIF11IFMENU(1)=1=GetAsyncKeyState(27)IFBTST(,15)=TRUEH,"Quitterlapartie?","Oui|Non",IF=1=1EXITIFTRUEENDIFELSE=0ENDIFENDIFIFMENU(7)=1IFMENU(4)=2H,"Quitterlapartie?","Oui|Non",IF=1=1EXITIFTRUEENDIFENDIFENDIFLOOP'UNTILMENU(1)=4'ALERT1,Partie$,1,"ok",rien%PAUSE1SETDC_DC(1)CLOSE#2RETURN  ,$8,D6L>rT~\|  "*>hHvNv\vbzhn"z`z`zlrrv"((.Nhpv*|..hhzz~,,T&^:jBrHvP~TZpt ((.,RHVN(,X*^*h*h*v*******BBJ\z ,Fdv    004 <X,`8h<vBJPXf      ( XH fR z^ f j r x |         0 B  f " l &  B  H          ^  p $ | ,  8  >  B  J  P  V  V  d  r    $ ( , 0 0 6 6  < D  J N & PS zzZo6n,FUNCTIONLOCAL,=TRUEFOR=1TO7IF(,6)=0=FALSE=7ENDIFNEXTRETURNENDFUNC $$24HFPR\Z``jhvrzzPSn<P|3|Jrouges `jaunes Y | Fin de partiesq Match nul !mqokqZ:YYYY X Fin de partieiqLes & gagnent !|J'ai gagn contre moi mme!qokqZ:YY Fin de partieiqBravo au joueur | ( )!|Et dsol pour l'autre...qokqZ:|YY |YY  Fin de partieiqJ'ai gagn la partie! Dsol.qokqZ: Fin de partieiq4Bravo ! Vous avez gagn !|Toutes mes flicitations !qokqZ:=PROCEDURE(|)LOCALIF|=1="rouges"ELSE="jaunes"ENDIFIF =TRUEIF|=0"Findepartie","Matchnul!","ok",ELSEIF=AND="Findepartie","Les"++"gagnent!|J'aigagncontremoimme!","ok",ELSEIF="Findepartie","Bravoaujoueur"+STR$(|)+"("++")!|Etdsolpourl'autre...","ok",ELSEIF(|=1AND=)OR(|=2AND=)"Findepartie","J'aigagnlapartie!Dsol.","ok",ELSE"Findepartie","Bravo!Vousavezgagn!|Toutesmesflicitations!","ok",ENDIFENDIFENDIFRETURN*&<4B8TFXLjZxdJb(x~V\bhnPS< Y5Y05Y45Y5Y5Y@5Y5Y5Y\5Yd5YX4Y`4=PROCEDURE FREEBMPFREEBMP0FREEBMP4FREEBMPFREEBMPFREEBMP@FREEBMPFREEBMPFREEBMP\FREEBMPdFREEDCXFREEDC`RETURN  &(22><JFVPbZnZndznxPS np<LhYhPn],&YhPoS$h=PROCEDUREL=1h=3DOIF(SUCC(h),6)=0EXITIFTRUEELSEh=MOD(SUCC(h),7)ENDIFLOOPRETURN "&">:FFLJ``dfjjnpPSg ^< 8hy@]:YhZo  n O]pZ:0pZ]" O$h O]:4 6@z@]:Yh Zo  nx  O]@Yp]:0@Yp]]"`  O$h O]:4 z@]:Yh pZ $hYh  {@]:Yht Zo8p @@8]:8ZpZH$@]:Yf @]:8O]pZ:0@Yp]]" @]:8O]:4b @]:8O]:48O$h84  |@]:Yh YhP$hYhPPoSiPZo8 YhPn YhPoS$h~ hZpZ:0@Yp]]"f hZ:4YhPoS$hz hZ:48 |@]:YhPn YhPoS$h L=PROCEDURELOCAL ,8,h=-1'GOTOsuitetest410IFh=-1'vrifierqu'ilpeutgagnericiFOR =1TO7IF( ,6)=00PRED( ),pIF@(p)=TRUEh=PRED( )ENDIF4PRED( )ENDIFNEXT ENDIF420IFh=-1'sipeutpasgagnervrifiesil'autrevagagneretessayerdel'empecherFOR =1TO7IF( ,6)=00PRED( ),3-pIF@(3-p)=TRUEh=PRED( )ENDIF4PRED( )ENDIFNEXT ENDIF'suitetest:430IFh=-1h=@ (p)IFh=-1'afficher"couppasenmmoire"ENDIFCLRELSE=TRUEENDIF440IFh=-1'Xalert"jx%=-1","testsdans4poss","ok",rien%=0FOR8=1TO74000+8=@H(8,p)5000'Xalert"a","dans4poss"+STR$(i%)+"v%="+STR$(v%),"ok",rien%IF>50010PRED(8),pIF@(3-p)=TRUE50024PRED(8)ELSE50034PRED(8)=h=PRED(8)ENDIF'Xalert"test4poss","Serareteenuposistion"+STR$(i%)+"maxv%="+STR$(maxv%),"ok",rien%ENDIFNEXT8ENDIF450IFh=-1h=P()'RAND(7)P()=MOD(SUCC(P()),7)FOR8=1TO7IF(SUCC(h),6)<>0h=MOD(SUCC(h),7)ELSE0h,pIF@(3-p)=TRUE4hh=MOD(SUCC(h),7)ELSE4hENDIFENDIFNEXT8ENDIF460WHILE(SUCC(h),6)<>0h=MOD(SUCC(h),7)WENDL=1RETURN    *(*(*8>@Pn^~t N^.pRt28 @DN T T4\FhFN\\zz&&.@X(`<nBrVzjv$0Hhx$*Bdt 6LPPXX ^PS,4HPpP8$8nZn$@$]:8$8$p|@]:8Z$ZL}@]:8$Y$$ FUNCTIONH(8,p)LOCAL$,=FALSEIF(8,6)=0FOR$=1TO65000+$IF(8,$)=0(8,$)=p'SETDC_DC(1)'AFTAB5500=@L(8,$)5501'Xalert"dans4poss","estpar4poss=r%="+STR$(R%),"ok",rien%(8,$)=0$=6ENDIFNEXT$ENDIFRETURNENDFUNC**@<NLlZn "(,,4PS zx<4Ph$hnZ$:h$0h$Y$$=PROCEDURE4(h)LOCAL$INChFOR$=6DOWNTO1IF(h,$)<>0(h,$)=0$=1ENDIFNEXT$RETURN $.8FL\\hdljvrzxPS z<0PpPh$hZn$Hh$>h$p$$=PROCEDURE0(h,p)LOCAL$INChFOR$=1TO6IF(h,$)=0(h,$)=p$=6ENDIFNEXT$RETURN &(48NLh^tfxltzPSPp$ZoxZn$n$d$ppZ]":$YT$Y$$FUNCTION(p)LOCAL,$,=FALSEFOR=1TO7FOR$=1TO6IF(,$)=0(,$)=pIF@(p)=TRUE=TRUE(,$)=0=7ELSE(,$)=0ENDIF$=6ENDIFNEXT$NEXTRETURNENDFUNC**8:FJ`^zpPS<(PpP$YZoZn$$$ppZ]"vp@Y$pppY$YP]@p]:($Y$$=PROCEDURE((,p)LOCAL,$IF<=FOR=1TO7FOR$=1TO6IF(,$)=0(,$)=pIF@(p)=TRUEIFp=1=MIN(,)ELSEIFp=2=MIN(,)ENDIF' SETDC_DC(1)'LogicalDC%' AFTAB' ~BitBlt(_DC(1),CPX1%,0,CPX1%+7*TC%,CPY1%,LogicalDC%,CPX1%,0,SRCCOPY)' PAUSE10ELSEIF<THEN((SUCC(),3-p)ENDIF(,$)=0$=6ENDIFNEXT$NEXTENDIFRETURN$$82FBTRnfx<F JDrHx^jnxPSrh< $Zn$Zo  $ $  $=PROCEDURELOCAL ,$FOR$=1TO6FOR =1TO7 ( ,$)=( ,$)NEXT NEXT$RETURN &*48ZRdZnbrhPSrh< $Zn$Zo  $ $  $=PROCEDURELOCAL ,$FOR$=1TO6FOR =1TO7( ,$)= ( ,$)NEXT NEXT$RETURN &*48ZRdZnbrhPSCN Pp $Zn$Zo  $p  6$ 6p$ F$6B 8$6$    $6$6$    $`$`L $ $FUNCTION(p)LOCAL ,$,,,,,=FALSEFOR$=1TO6FOR =1TO7=( ,$)IF=p'HorizontalIF <=4=TRUEFOR= TOADD( ,3)IF(,$)<>CLR=ADD( ,3)ENDIFNEXTENDIF'VerticalIF$<=3AND=FALSE=TRUEFOR=$TOADD($,3)IF( ,)<>CLR=ADD($,3)ENDIFNEXTENDIF'DiagonalemontantIF$<=3AND <=4AND=FALSE=TRUE= FOR=$TOADD($,3)IF(,)<>CLR=ADD($,3)ENDIFINCNEXTENDIF'DiagonaledescendantIF$>=4AND <=4AND=FALSE=TRUE= FOR=$DOWNTOSUB($,3)IF(,)<>CLR=SUB($,3)ENDIFINCNEXTENDIFIF=TRUETHEN=TRUE, =7,$=6ENDIFNEXT NEXT$RETURNENDFUNC<4<4D>D>RL`Zzjtt * 6L.lBtJX^fll*.6@ DDD(nJzRZx&&*4>>JJN PSpXPh,(8YX]:Yp 0 4YY B,YhY (YYYY :  Yf  hP* hP,$ZY8& :Y$8Y Y,Y#YYY'(YY B(Y OAY OA(,Y@(,(Y(YZ(YY YY AYX(Y |8 Y*hPhPY@Y Y A$Y A,Y#Y((Y OAY OA(,Y@(,(Y(Y(Y(YZ(Y dYX( |$]$< XhPBhPY@Y Y A$ZY8*:Y$8Y Y,Y#Y((Y OAY OA(,Y@(,(Y(Y(Y(YZ(Y dYX( |8TN]T. YpFUNCTION(h)LOCAL,,,(,,8,,,,,,SETDCX=0,=0IFp=1=0ELSE=4ENDIF,=- (=+h* =6IF=OR==2'10=5'ELSEIF>1=1=0ELSE=2=4ENDIFENDIFIF(SUCC(h),)=0=SUCC(h),==$=,FOR8=1TO,=$+8* /DEFFILL0RGBCOLORRGB(0,0,0)PBOX(,MAX(0,- ),(+PRED( ),+PRED( )PUT(,,,@,SRCPAINTPUT(,,,,SRCANDPUT(,,,SRCPAINTPUT(,,,SRCAND~BitBlt(_DC(1),(,0, ,+ ,X,(,0,SRCCOPY)NEXT8ENDIFIF=0DODECIF(SUCC(h),)=0=SUCC(h),==+(5-)* =+ $=,=+ DEFFILL0RGBCOLOR0PBOX(,,(+PRED( ),+PRED( )PUT(,,,@,SRCPAINTPUT(,,,,SRCANDPUT(,,,SRCPAINTPUT(,,,SRCANDPUT(,,,SRCPAINTPUT(,,,SRCAND~BitBlt(_DC(1),(,, , *2,X,(,,SRCCOPY)EXITIF=1ELSEEXITIFTRUEENDIFLOOPELSEDODECIF(SUCC(h),)=0=SUCC(h),==+(5-)* =+ $=FOR8=1TO,=$+8* /DEFFILL0RGBCOLOR0PBOX(,,(+PRED( ),+PRED( )PUT(,,,@,SRCPAINTPUT(,,,,SRCANDPUT(,,,SRCPAINTPUT(,,,SRCANDPUT(,,,SRCPAINTPUT(,,,SRCAND~BitBlt(_DC(1),(,, , *2,X,(,,SRCCOPY)NEXT8EXITIF=1ELSEEXITIFTRUEENDIFLOOPENDIFIF<>0OR<>0(,)=p=TRUEELSE=FALSEENDIFRETURN'TROFFENDFUNCTDTD^NfRfRt^t^fnrz ,2DPX^jvz ~~(>FN``d(j4hp"v04<XrH.`Jvf  *04"8&<.DJ\dr8T p6Nd|"4:BFLPPh"*.8>>HPXPS <P$P (,d'Y OY (Y@$OY ,(,(Y A,Y A(,Y A(Y A,=PROCEDURE( ,$)LOCAL(,,RGBCOLORRGB(100,150,200)(=+PRED( )* ,=+(5-PRED($))* LINE(,,,(+ ,,+ LINE(,,+ ,(+ ,,RETURN$$6>^Z|PSLP$P T $ $Tp@]: 6   $T $ 2     z@]:    $T $   t   @]:$ $ $T $ ~ $ ] $ 4 $@]:$<$ $T $ 8$$ dA$@]: $ $ . $ $T $ (].@]: $ $  $ $T $ ]\A@]: $ $  $ $T $ ]B@]: $ $ x $ $T $ fr]xA@]:FUNCTIONL( ,$)LOCAL,,,T,=FALSE= ,=$T=( ,$)'Horizontal'AFTAB6000=1IF >1DEC DOWHILE( ,$)=TOR( ,$)=0'Marquerx%,y%=SUCC(), =PRED( )LOOPUNTIL <1ENDIF'Xalert"M1",".","ok",rien% =6010IF <7INC DOWHILE( ,$)=TOR( ,$)=0'Marquerx%,y%=SUCC(), =SUCC( )LOOPUNTIL >7ENDIF'Xalert"M2",".","ok",rien%IF>=4THEN= =6020'IFR%=FALSE'Vertical=1IF$>1DEC$'DOWHILET%(x%,y%)=C%ORT%(x%,y%)=0DOIF( ,$)=TOR( ,$)=0'Marquerx%,y%=SUCC(),$=PRED($)ELSEEXITIFTRUEENDIFEXITIF$<1LOOP'LOOPUNTILy%<1ENDIF'Xalert"M3",".","ok",rien%$=6030IF$<6INC$DOWHILE( ,$)=TOR( ,$)=0'Marquerx%,y%=SUCC(),$=SUCC($)LOOPUNTIL$>6ENDIF'Xalert"M4",".","ok",rien%IF>=4THEN=+'TRUE$=6040'ENDIF'IFR%=FALSE'diag1=1 =,$=WHILE >1AND$>1DEC DEC$IF( ,$)=TOR( ,$)=0'Marquerx%,y%INCELSEEXITIFTRUEENDIFWEND'Xalert"M5",".","ok",rien%6050 =,$=WHILE <7AND$<6INC INC$IF( ,$)=TOR( ,$)=0'Marquerx%,y%INCELSEEXITIFTRUEENDIFWEND'Xalert"M6",".","ok",rien%IF>=4THEN=+'ENDIF'IFR%=FALSE'diag26060=1 =,$=WHILE >1AND$<6DEC INC$IF( ,$)=TOR( ,$)=0'Marquerx%,y%INCELSEEXITIFTRUEENDIFWEND'Xalert"M7",".","ok",rien%6070 =,$=WHILE <7AND$>1INC DEC$IF( ,$)=TOR( ,$)=0'Marquerx%,y%INCELSEEXITIFTRUEENDIFWEND'Xalert"M8",".","ok",rien%IF>=4THEN=+'TRUE'ENDIF6080RETURNENDFUNC<6<6RJRJl\l\lhlhlpx ((2":4D<Lt|t(00:Blp66DJRVhnnr r*r*~4<FN~0 0 <PP"P"P2P:P:\BrVpx$F0N8V@jz ,44<<Drnr~z$.$>,F2J:V>\D`D~llPSr*0P$P T $ $T   $T  J    $T    6 $ $ $T $$Z $$ $ $T $$ & $  $ $  $ $T  ] j  $ $ `  $ $TN Z ]`  ~   $ $ $  $ $T  ]$   $ $  $ $T  ] >  FUNCTION0( ,$)LOCAL,,,T,=FALSE= ,=$T=( ,$)'Horizontal=1IF >1DEC DOWHILE( ,$)=T=SUCC(), =PRED( )LOOPUNTIL <1ENDIF =IF <7INC DOWHILE( ,$)=T=SUCC(), =SUCC( )LOOPUNTIL >7ENDIFIF>=4THEN=TRUE =IF=FALSE'Vertical=1IF$>1DEC$DOWHILE( ,$)=T=SUCC(),$=PRED($)LOOPUNTIL$<1ENDIF$=IF$<6INC$DOWHILE( ,$)=T=SUCC(),$=SUCC($)LOOPUNTIL$>6ENDIFIF>=4THEN=TRUE$=ENDIFIF=FALSE'diag1=1 =,$=WHILE >1AND$>1DEC DEC$IF( ,$)=TINCELSEEXITIFTRUEENDIFWEND =,$=WHILE <7AND$<6INC INC$IF( ,$)=TINCELSEEXITIFTRUEENDIFWENDIF>=4THEN=TRUEENDIFIF=FALSE'diag2=1 =,$=WHILE >1AND$<6DEC INC$IF( ,$)=TINCELSEEXITIFTRUEENDIFWEND =,$=WHILE <7AND$>1INC DEC$IF( ,$)=TINCELSEEXITIFTRUEENDIFWENDIF>=4THEN=TRUEENDIFRETURNENDFUNC<6<6RJRJl\l\lhlhxpxpz ..@@DFDFbbbbnlnl|z|0*>JP\TbTbr~r~~~  $":6\PdXl`v~ (0P,X4^8fDjJpNb|&&**PS-6< $(,<Y#YYYYYYY\Ordinateur contre YYHumain contre YY OrdinateurYYHumainY Y/Y | Rouges : ѳY, Jaunes : Y0 Match4Z nul4Z : Y4 <Ym$Yn Y Y (Ym$BY ,(,YY P$P (,Y@ P]$P]01(,Y(,Y0 P$P(,Y@ P]$P]01(,Y(,Y4 $'ZYYWY :X=PROCEDURELOCAL ,$,(,,,<DEFFILL0RGBCOLOR0PBOX0,0,,RGBCOLOR16777215IF=THEN="Ordinateurcontre"IF=THEN="Humaincontre"IF=THEN=+"Ordinateur"IF=THEN=+"Humain"IF>1=+""+STR$()+"/"+STR$()+""=+"Rouges:"+STR$(,)+"Jaunes:"+STR$(0)+"Match"+@$(4)+"nul"+@$(4)+":"+STR$(4)ENDIF'text0,0,<=SRCCOPYFOR$=0TO5FOR =0TO6(=+ * ,=+SUB(5,$)* PUT(,,,IF( +1,$+1)=1PUT(,,,@,SRCPAINTIF@0( +1,$+1)PUT(,,,,SRCANDELSEPUT(,,,0,SRCANDENDIFELSEIF( +1,$+1)=2PUT(,,,@,SRCPAINTIF@0( +1,$+1)PUT(,,,,SRCANDELSEPUT(,,,4,SRCANDENDIFENDIFNEXT NEXT$RGBCOLORRGB(255,255,255)GRAPHMODE,TRANSPARENTTEXT0,0,'PAUSE20IF=TRUETHENXRETURN *(026<JLT^& d@"H r(8Tl ,0Vr  $:@FNVp 26PS B<iKiK=PROCEDURE'WHILETIMER-vsync_timer<25'WEND'vsync_timer=TIMERREPEATUNTILAND(INP(PORT986),8)=FALSEREPEATUNTILAND(INP(PORT986),8)=8RETURN   * 0 DJ"l&r>BBPSLT $Zn$Zo  $FUNCTION$LOCAL ,$FOR$=1TO6FOR =1TO7NEXT NEXT$ENDFUNC &,4<4<>DHLLTPS < PY0aZ Parties.dat+ZY8~Y8[StZ,Y88FZ)=PROCEDURE ()'encours....IF0=TRUEOPEN"a",#1,"Parties.dat"FOR8=1TOIFMOD(8,2)=1?#1,(8)ENDIFNEXT8CLOSE#1ENDIFRETURN ".@HRZhl|zPS TYm$&H ?Y$8\%$Yn x\* X$FUNCTION$()'encours...FOR$=0TO5=VAL("&H"+MID$(,1+MUL($,3),3))FOR =0TO6=DIV,3NEXT NEXT$RETURNENDFUNC 0P\^ljvtt~PS  $3 Ym$Yn  P$P@  f \ $P FUNCTION$LOCAL ,$,,=""FOR$=0TO5CLRFOR =0TO6=+( +1,$+1)*(3^ )NEXT =+HEX$(,3)NEXT$RETURNENDFUNC $$0,><FDTTPSh<,Z$XZYY$\YXY\0Z$`ZYY$dY`Yd0YX]Y F <F Y F 2 #YY @g$YY @g$Y#YY'YYY OY O'Y#Y eY eYeYYY OY O$YYY'Y#Y eY eYe'Y eY eYeYYY OY O$]'YY'Y#Y eY eYe'Y eY eYeYYY OY O$0]''Y#Y eY eYeYY'Y#Y eY eY@'Y eY eYeYYY OY O$]'Y'Y#Y eY eYe'Y eY eYeYYY OY O$4]''Y#Y eY eYeY'Y#Y eY eY@'Y eY eYeYYY OY O$Y''Y eY eYeYYY OY O$@Y''Y#YYY OY OYYY'Y eY eYe'Y eY eYeYYY OY O$Z808&]':Z]=PROCEDURE,X=CreateCompatibleDC(_DC(1))\=CreateCompatibleBitmap(_DC(1),,)'enfaitnon...BufBmp%=CreateCompatibleBitmap(_DC(1),1024,768)~SelectObject(X,\)`=CreateCompatibleDC(_DC(1))d=CreateCompatibleBitmap(_DC(1),,)'enfaitnon...BufBmp%=CreateCompatibleBitmap(_DC(1),1024,768)~SelectObject(`,d)'SETDCBufDC%SETDCX'Avant_AffIF>=1024 =70'90=60'75ELSEIF>=800 =50'70=35'60ENDIF'TC%=TC%/2'TJ%=TJ%/2=(-( *7))/2=(-( *6))/2DEFFILL0RGBCOLORRGB(0,0,255)PBOX0,0,PRED( ),PRED( )RGBCOLORRGB(255,255,255)DEFFILL0PCIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),RGBCOLORRGB(0,0,0)DEFFILL0PCIRCLE /2, /2,/2RGBCOLORRGB(255,255,255)CIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),CLSRGBCOLORRGB(255,0,0)DEFFILL0PCIRCLE /2, /2,/2RGBCOLORRGB(255,255,255)CIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),0CLSRGBCOLORRGB(255,127,127)DEFFILL0PCIRCLE /2, /2,/2RGBCOLORRGB(255,0,0)DEFFILL0PCIRCLE /2, /2,/4RGBCOLORRGB(255,255,255)CIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),CLSRGBCOLORRGB(255,255,0)DEFFILL0PCIRCLE /2, /2,/2RGBCOLORRGB(255,255,255)CIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),4CLSRGBCOLORRGB(255,255,200)DEFFILL0PCIRCLE /2, /2,/2RGBCOLORRGB(245,245,0)DEFFILL0PCIRCLE /2, /2,/4RGBCOLORRGB(255,255,255)CIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),CLS0RGBCOLORRGB(255,255,255)PCIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),@CLS0RGBCOLORRGB(255,255,255)DEFFILL0PBOX0,0,PRED( ),PRED( )RGBCOLORRGB(0,0,0)PCIRCLE /2, /2,/2RGBCOLORRGB(255,255,255)CIRCLE /2, /2,/2GET0,0,PRED( ),PRED( ),FOR8=1TO15'T%(1+RAND(7),1+RAND(6))=RAND(3)NEXT8CLSSETDC_DC(1)RETURN  .2Z2DRll<~R~`tt 4"4":,HB`^rxx8,X,X2\@rF|bt<R\$|6Rppv4Rrrv .>Dl~4TTZt  "(@Lh.zHffPS:<DPpZonO]pZ:0pZ]"O]:4vZn[n\nlnmnnnonZ\n%O]pZ:0Y@@Rh~Z]:ZNCP%=Y WY@o@Rh[NCP%=Y W\pB]:DO]:4=PROCEDURED(p)LOCAL,'VerifsigagnantFOR=1TO7IF(,6)=00PRED(),pIF@(p)=TRUE=TRUEENDIF4PRED()IF=TRUETHEN=7ENDIFNEXT'VerifsicompletIF=FALSEIF(1,6)<>0IF(2,6)<>0IF(3,6)<>0IF(4,6)<>0IF(5,6)<>0IF(6,6)<>0IF(7,6)<>0=TRUEENDIFENDIFENDIFENDIFENDIFENDIFENDIFENDIFIF=FALSEFOR=1TO3IF(,6)=0INC0PRED(),pIFMOD500=0SETDC_DC(1)RGBCOLOR16777215GRAPHMODE,TRANSPARENTTEXT30,30,"NCP%="+STR$()+""ELSEIFMOD250=0RGBCOLOR16777215GRAPHMODE,OPAQUETEXT30,30,"NCP%="+STR$()+""ENDIFDSUB(3,p)4PRED()ENDIFNEXTENDIFRETURN  2,BBT^fxz &06@FPRZV`Zf^lbrfxj~nrr.BNZXl^~PS42<$?]:D: Z<Y=PROCEDURE$D1 CLOSEW#1EDITSYSTEMRETURN  &"*&0,42PS(Pp oj@Zo  n  O]pZ:0pZ]"0 h@6'i@@p | h@`i@p  h@6i@ O]:4 h@Y,   h@$, k@FUNCTION(p)LOCAL ,,DIM@(7)FOR =1TO7IF( ,6)=00PRED( ),pIF@(p)=TRUE@( )=@( )+10000ELSE=@IF(AND(3-p))<>0@( )=@( )-10000ELSEIF(ANDp)<>0@( )=@( )+1000ENDIFENDIF4PRED( )IF=0OR(@( )>,)= ,=@( )ENDIFENDIFNEXT ERASE@()RETURNENDFUNC$$$$,.,.:>:>PPPPPPlblbv   4&4&VDbNt\xbxb|hpp|||PSs $Zo 8 Zn$.  $$ Z[  Y   $Y  n$Y \h]n $Y ]~ Y  Y   $ Y   ] @  $ 8 Y & 2 ]8  d Y  Y   $  Y   ]   $ Y   ] ,  Y    $Y  $$ FUNCTIONLOCAL ,$,,,,=FALSEFOR =1TO7FOR$=1TO6IF( ,$)=0FOR =1TO2IF(AND )=0( ,$)= 'horizontal=1= WHILE>1DECIF(,$)= INCELSEEXITIFTRUEENDIFWEND= WHILE<7INCIF(,$)= INCELSEEXITIFTRUEENDIFWENDIF>=4=OR ENDIFIF(AND )=0'Diagonale1=1= =$WHILE>1AND>1DECDECIF(,)= INCELSEEXITIFTRUEENDIFWEND= =$WHILE<7AND<6INCINCIF(,)= INCELSEEXITIFTRUEENDIFWENDIF>=4=OR ENDIFIF(AND )=0'Diagonale2=1= =$WHILE>1AND<6DECINCIF(,)= INCELSEEXITIFTRUEENDIFWEND= =$WHILE<7AND>1INCDECIF(,)= INCELSEEXITIFTRUEENDIFWENDIF>=4=OR ENDIFENDIFENDIFENDIF'ifr%andtestplayer%=0NEXT 'remettre0( ,$)=0IF=3 =7ENDIF$=6ENDIFNEXT$NEXT RETURNENDFUNC  6060D@RPRPldldzt *>F&f<nDtH|TZ^jz>FL TX^ j*v4NV^t|**6BNpx 6>BNTXbl *28@DJ\rvz~&&6FFPX^^fllt|||PSth$P88Z8[8\8l8m8npFUNCTION$(8)RETURNp((8,1),(8,2),(8,3),(8,4),(8,5),(8,6))ENDFUNCp`thPS hf( Zo  n FUNCTION(LOCAL=0, FOR =1TO7IF( ,6)=0INCENDIFNEXT RETURNENDFUNC ,,B>JFNLXTd^hfPS <TTYvDebug Hq mok|annuler affichageqZ:Yr=PROCEDURET()IF=TRUE"Debug"+H,,"ok|annuleraffichage",'ALERT1,a$,1,"ok|annuleraffichage",rien%IF=2=FALSEENDIFENDIFRETURN" hRh~zPS<\_h%ZZ0%h-YG G YhYOY_^=PROCEDURE\DIM(95)RESTORECLR,hDOREADINCIFMID$(,1,1)<>"0"INChENDIF?;"";;"";h(PRED())=EXITIF=95LOOPERASE()RETURN &(2,66>>FX^`fdlPS 3(Jouer (YY (!|Joueur 1 (les rouges) est Humaint ( (%|Joueur 1 (les rouges) est Ordinateur (YY  (|Joueur 2 est Humain (P (|Joueur 2 est Ordinateur (Y (!|Affichage des statistiques : Ouio ( (!|Affichage des statistiques : Nono ( (|Quitter ( (FUNCTION $LOCAL((="Jouer"IF=(=(+"|Joueur1(lesrouges)estHumain"ELSE(=(+"|Joueur1(lesrouges)estOrdinateur"ENDIFIF=(=(+"|Joueur2estHumain"ELSE(=(+"|Joueur2estOrdinateur"ENDIFIF=TRUE(=(+"|Affichagedesstatistiques:Oui"ELSE(=(+"|Affichagedesstatistiques:Non"ENDIF(=(+"|Quitter"RETURN(ENDFUNC $&82nbtf $6 l<r@pvPS<`8Y'[C ((m:l:dDPHTL$D$H$L F :dYDYPYHYT ||ZYx8 YD8ZYD8\! YH8[ YH8l! 8|x88 Y|Y :pYLY|RL$D$H$LYL Y'YYYY P Hm$Combien de parties contre moi-mme ?q1|10|100|1000|10000qZ: L   L  dL , L L '84,0@Y Y'8Y :@88Y  YZ]:H - Match Ordi contre Ordi.qLes rouges ont gagn MY, fois.|Les jaunes Y0 fois.|Il y a eu Y4 match4Z nul4ZqOkqZ:@ Y':dL$D$H$LYL*Y|YY ((m:l:dL$D$H$LYLY|YY$4 ((m:l:dL$D$H$LYL^Y|Y ((m:l:dL$D$H$LYLY|Hm%Souhaitez-vous quitter le programme ?eqOui|NonqZ:Y]ZFn =PROCEDURE`LOCAL8,CLS0'afficher"1"PAUSE2(=@ $l('afficher"2"'PAUSE2d'afficher"3"'PAUSE2DOP=D,T=HMOUSED,H,LPEEKEVENTIF_Mess=WM_PAINTdENDIFIFD<>PORH<>T=|CLR|FOR8=1TOxIFD>(8,1)ANDD<(8,3)ANDH>(8,2)ANDH<(8,4)|=88=xENDIFNEXT8IF|<>pENDIFENDIFIFL=1IF|=1DOMOUSED,H,LLOOPUNTILL=0CLS0=1IF=AND=H,"Combiendepartiescontremoi-mme?","1|10|100|1000|10000",IF=1=1ELSEIF=2=10ELSEIF=3=100ELSEIF=4=1000ELSEIF=5=10000ENDIFENDIF8=1CLR4,,,0@=IF>1CLRENDIFDO'FORi%=1TOnpoo%CLS0=8IF>1THEN =FALSE@INC8EXITIF8>LOOPIF>1SETDC_DC(1)H+"-MatchOrdicontreOrdi.","Lesrougesontgagn"+STR$(,)+"fois.|Lesjaunes"+STR$(0)+"fois.|Ilyaeu"+STR$(4)+"match"+@$(4)+"nul"+@$(4),"Ok",ENDIF=@ =TRUECLS0dDOMOUSED,H,LLOOPUNTILL=0ENDIFIF|=2IF==ELSE=ENDIF(=@ $l(dDOMOUSED,H,LLOOPUNTILL=0ENDIFIF|=3IF==ELSE=ENDIF(=@ $l(dDOMOUSED,H,LLOOPUNTILL=0ENDIFIF|=4IF=TRUE=FALSEELSE=TRUEENDIF(=@ $l(dDOMOUSED,H,LLOOPUNTILL=0ENDIFIF|=5H,"Souhaitez-vousquitterleprogramme?","Oui|Non",IF=1EXITIFTRUEENDIFENDIFENDIFLOOPUNTILMENU(1)=4RETURN  ""0$82DBLBLBZBdBdJhJhJvJNNddzz~~Zdfnrxv~&R\dt|(,0<P\nv z~~,2<X\dvzHNNXbhl p .22DXdjvz*48BH"T2\:`>dTvbffx   ^Tp^xj|pvv||PS`<dK$pYX]Z'Y#YZ)5`6`Y @'YY5O(H' programm par Nicolas Rey en GFA-BasicG'5gCg4@YpgW'YY5O6O:pZYYYYYXYY |Z]=PROCEDUREdWINDGET14,pSETDCXGRAPHMODE,TRANSPARENTRGBCOLORRGB(255,255,255)DEFFILL0RGBCOLOR0PBOX1,41,_X-2,_Y-2RGBCOLORRGB(0,32,64)PBOX0,0,_X-1,40=H+"programmparNicolasReyenGFA-Basic"RGBCOLORRGB(255,255,200)TEXT_X/2-TXTLEN()/2,40/2-p/2,RGBCOLORRGB(255,255,255)BOX0,0,_X-1,_Y-1p~BitBlt(_DC(1),0,0,,,X,0,0,SRCCOPY)SETDC_DC(1)RETURN "&(<:V@`Fj`p,F"\*`T\`PS<hT$P$pKp $C5gg$5gg$tY`$`Yt6$pA6Y$ $W=PROCEDUREh($,$)LOCALp,WINDGET14,p=TXTLEN($)=_X/2-/2t=_X/2+/2BOX-2,$-2,t+2,$+p+2TEXT,$,$RETURN$$$$2222BDBD^Z^ZzpzpPS<lT(3,p8,xKp (|Y (ZO , (P] (0 ( , (%xYx , YxZ5g ,CgYx\5g ,Cg@ (6gYxp8@g,ZYx8Z8[,8l,pA6p6,8=PROCEDUREl(()LOCAL,,,p,8,,x=0WINDGET14,pDO=INSTR((,"|")IF>0,=MID$((,1,PRED())(=MID$((,SUCC())ELSE,=((=""ENDIFINCx (x)=,(x,1)=_X/2-TXTLEN(,)/2-2(x,3)=_X/2+TXTLEN(,)/2+2EXITIF(=""LOOP,=_Y/2-(x*(p+4+20))/2FOR8=1TOx(8,2)=,(8,4)=,+p+2ADD,,p+4+20NEXT8RETURN0,84FBJFbZpdB V0\4^pPS(<p8Y#ZZYx88Y|'8Z8[8\8lY'8Z8[8\8lY8Z68[68 WY @'8Z8[8\8l'8Z8[8\8l8Z68[68 W8=PROCEDUREpLOCAL8DEFFILL0GRAPHMODE,TRANSPARENTFOR8=1TOxIF8=|RGBCOLORRGB(255,255,255)PBOX(8,1),(8,2),(8,3),(8,4)RGBCOLORRGB(255,255,0)BOX(8,1),(8,2),(8,3),(8,4)RGBCOLOR0TEXT(8,1)+2,(8,2)+2, (8)ELSERGBCOLORRGB(0,32,64)PBOX(8,1),(8,2),(8,3),(8,4)'RGBCOLOR0'PBOXM%(i%,1),M%(i%,2),M%(i%,3),M%(i%,4)RGBCOLORRGB(205,222,255)BOX(8,1),(8,2),(8,3),(8,4)TEXT(8,1)+2,(8,2)+2, (8)ENDIFNEXT8RETURN "80JDVVp",8hhhthz"(PS<tP8'8Z8[8\8lY8Z68[68 W=PROCEDUREt(8)RGBCOLORRGB(255,255,255)PBOX(8,1),(8,2),(8,3),(8,4)'RGBCOLORRGB(255,255,255)RGBCOLOR0TEXT(8,1)+2,(8,2)+2, (8)RETURN",^\^xdPSe Pp8<@DHLPT0 ?]$<@]$@@]$D@]$H@]$L@]$P@]$$iZ0+<Z@ZDZHZLZPZZ<886 ZPZLZHZDZ@Z<Z<8coup :|Inversion (pos=8)q:T84 Z,8pO<@.YnT0 Z2T &   Ti @TiT Z)` Zh 88hPn$ 8h]pZ:0@p]]" 8h]:48hi 8h]:488F p | x Zh oZ0+Y^8 Z,Y8 Z)FUNCTION (p)LOCAL=-1,8,<,@,D,H,L,P,,,=0,T,=FALSEIFEXIST(0)<=@$(1)@=@$(2)D=@$(3)H=@$(4)L=@$(5)P=@$(6)=@$(7)OPEN"i",#1,08=@<(<,@,D,H,L,P,)IF8=08=@<(,P,L,H,D,@,<)=TRUET"coup:|Inversion(pos="+STR$(8)+")"ENDIFIF8>0SEEK#1,8+PRED(p)*7*4CLRFORT=0TO6=INP%(#1)IFT=0OR>=IF>THENCLRINCIF=FALSE()=TELSE()=6-TENDIF=ENDIFNEXTTENDIF'ifi%>0CLOSE#1IF=1=(1)ELSE8=1DOIF(SUCC((8)),6)=00(8),pIF@(3-p)=TRUE4(8)(8)=()DECELSE4(8)ENDIFENDIFINC8EXITIF8>LOOPIF>0'FORi%=1TOncs%'IFT%(SUCC(CS%(i%)),6)=0'IF@CoupDonneCG(player%,Col%)=TRUE'R%=CS%(i%)'ALERT1,"Lecoupsuivantseracdg",1,"ok",rien%'ENDIF'ENDIF'NEXTi%IF=-1=(1)ENDIFENDIF'ifncs%>0ENDIFELSE'elsedeIFEXIST(ficstat$)OPEN"o",#1,0FOR8=0TO94OUT%#1,0NEXT8CLOSE#1ENDIF'FindeIFEXIST(ficstat$)RETURNENDFUNCvXvXfft22zz 2<jpp&z&zNNVVdp,2<BJJZZbb.l.l<x<xB|B|NRn "*(.68686L6h6666666HVZZ^^bbh@h@|Pblt||PSZ<LP 8<@DHLP|YpuZ0+ZYOT!YZ]<:<(G?!?]Y"p!@]Y"l!?]$<@]$@@]$D@]$H@]$L@]$P@]$<@ D H L P  h!<Z@ZDZHZLZPZZ<ZPZLZHZDZ@Z<Z<<@PDLZ,<M.Z28Yh inp(c1%*4)=8 c1%*4=<@8Z,<M.Z8Z,8Z,8.Y^ Z,Y 8@@|Z,|.Z28Y|inp%(p%+c2%*4)=8 c2%*4=@@ p%=|8Z,|.Z8Z,8Z,8.Y^ Z,Y 8D@|Z,|.Z28Y|inp(p%+c3%*4)=8 c3%*4=D@ p%=|8(Z,|.Z8Z,8Z,8.Y^ $Z,Y 8H@|Z,|.Z28Y|inp(p%+c4%*4)=8 c4%*4=H@ p%=|8PZ,|.Z8Z,8Z,8.Y^ LZ,Y 88L@|Z,|.Z28Y |inp(p%+c5%*4)=8 c5%*4=L@ p%=|8xZ,|.Z8Z,8Z,8.Y^ tZ,Y `8P@|Z,|.Z28YN|inp(p%+c6%*4)=8 c6%*4=P*4 (P@) p%=|8Z,|.Z8Z,8Z,8.Y^ Z,Y 8@|Z,|.Z28Yv|inp(p%+c7%*4)=8 c7%*4=@ p%=|8Z,|.Z8Z,8Z,8.Y  Z,Y 8YpO<@YTh@|| p%=%| soit i%=%8 + (player%-1)=)YpO * 7 * 4 (YpO<@) + YTh@8YpO<@@YTh@|| p%=%| soit i%=%8 + (player%-1)=)YpO * 7 * 4 (YpO<@) + @YTh@Z,|.Z2Ypr @A@YTE@Ye(/ @@YTE@Ye(/ majstat :|i%=8|v%= jx%(%YT)=YTh|q:TZ,|.Z,YTh]pZ:0@Yp$p!YO$TTdZ)=PROCEDUREL()LOCAL ,8,<,@,D,H,L,P,,,|,,=FALSEARRAYFILL(),0p=1OPEN"u",#1,0FORT=1TOPRED()'Retracagedelapartie(sanslederniercoupevidemment)IF=TRUESETDC_DC(1)=FALSE<=CLR=<=TRUEENDIFIF@(>1IF@(1)=FALSEIF@(2)=FALSE'afficher"ncolvide>1"<=@$(1)@=@$(2)D=@$(3)H=@$(4)L=@$(5)P=@$(6)=@$(7)'Lavaaache!c6%aulieudec7%!IF<<>-1AND@<>-1ANDD<>-1ANDH<>-1ANDL<>-1ANDP<>-1AND<>-1'afficher"c1c3<>-1"'encours....=FALSE=@<(<,@,D,H,L,P,)IF=0=@<(,P,L,H,D,@,<)IF>0=TRUESWAP<,SWAP@,PSWAPD,LENDIFENDIFSEEK#1,<*48=INP%(#1)'ousetrouvec2?IF=TRUETHEN="inp(c1%*4)="+STR$(8)+"c1%*4="+STR$(<*4)IF8=0SEEK#1,<*48=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO94OUT%#1,0NEXT ENDIF|=8+@*4SEEK#1,|8=INP%(#1)'ousetrouvec3?IF=TRUETHEN=+"|inp%(p%+c2%*4)="+STR$(8)+"c2%*4="+STR$(@*4)+"p%="+STR$(|)IF8=0SEEK#1,|8=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO94OUT%#1,0NEXT ENDIF|=8+D*4SEEK#1,|8=INP%(#1)'ousetrouvec4?IF=TRUETHEN=+"|inp(p%+c3%*4)="+STR$(8)+"c3%*4="+STR$(D*4)+"p%="+STR$(|)IF8=0SEEK#1,|8=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO94OUT%#1,0NEXT ENDIF|=8+H*4SEEK#1,|8=INP%(#1)'ousetrouvec5?IF=TRUETHEN=+"|inp(p%+c4%*4)="+STR$(8)+"c4%*4="+STR$(H*4)+"p%="+STR$(|)IF8=0SEEK#1,|8=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO94OUT%#1,0NEXT ENDIF|=8+L*4SEEK#1,|8=INP%(#1)'ousetrouvec6?IF=TRUETHEN=+"|inp(p%+c5%*4)="+STR$(8)+"c5%*4="+STR$(L*4)+"p%="+STR$(|)IF8=0SEEK#1,|8=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO94OUT%#1,0NEXT ENDIF|=8+P*4SEEK#1,|8=INP%(#1)'ousetrouvec7?IF=TRUETHEN=+"|inp(p%+c6%*4)="+STR$(8)+"c6%*4="+STR$(P)+"*4("+STR$(P*4)+")p%="+STR$(|)IF8=0SEEK#1,|8=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO94OUT%#1,0NEXT ENDIF|=8+*4SEEK#1,|8=INP%(#1)'ousetrouveles14stats?IF=TRUETHEN=+"|inp(p%+c7%*4)="+STR$(8)+"c7%*4="+STR$(*4)+"p%="+STR$(|)IF8=0SEEK#1,|8=LOF(#1)OUT%#1,8SEEK#1,8FOR =0TO13OUT%#1,0NEXT ENDIFIF=FALSE|=8+PRED(p)*7*4+(T)*4=+"|p%="+STR$(|)+"soiti%="+STR$(8)+"+(player%-1)="+STR$(p-1)+"*7*4("+STR$(PRED(p)*7*4)+")+"+STR$((T)*4)ELSE|=8+PRED(p)*7*4+(6-(T))*4=+"|p%="+STR$(|)+"soiti%="+STR$(8)+"+(player%-1)="+STR$(p-1)+"*7*4("+STR$(PRED(p)*7*4)+")+"+STR$((6-(T))*4)ENDIFSEEK#1,|=INP%(#1)IFp==MIN(2147483645,+2^MAX(0,DIV(T+(42-),2)-12))ELSE=MAX(-2147483645,-2^MAX(0,DIV(T+(42-),2)-12))ENDIFT"majstat:|i%="+STR$(8)+"|v%="+STR$()+"jx%("+STR$(T)+")="+STR$((T))+"|"+SEEK#1,|OUT%#1,ENDIF'comb<>-1ENDIF'iftestsigagnera(2)ENDIF'iftestsigagnera(1)0(T),pp=3-pELSE'simoinsde2colonnesvidesonarrteT=PRED()ENDIFNEXTTCLOSE#1RETURNfRfRpdpd|l|l||(,8DHDHDbZpp~DHDdDpDpL|(,00B*NL >L$XF (2 <@@f.t:\ $2@PZ"d*h0h0DPr$2@LZhx.8@FFZfLZh t&2DNV\\p|   &  2  @  L  X  j  t  |    . :  <  F  R  `  l  x    " " 0 p " x ( | n & R * X * X 8 d D r X ~               ..>>DD L LTTZPRVrD<X3<@DHLP8Y#YY6`Y@Y 60iZ0+?]$<@]$@@]$D@]$H@]$L@]$P@]$$<@ D H L P Y <Z@ZDZHZLZPZZ<88 ZPZLZHZDZ@Z<Z<88Z,8.YY'YnT Z2$Y d YYTY Y g Cg6` W Y@YTY Y g Cg6` WYTYY TT n YYY O6`YYY Y O6` Y@YY O6`Y@YY Y O6`Y'YnTZ2$Y v YYTY Y g Cg6` W Y@YTY Y g Cg6` WYTYY TT |YYY O6`YYY Y O6OY@YY O6`Y@YY Y O6O affstat:|i%=8q:T affStat:|:< @ D H L P Yq:TZ)=PROCEDUREXLOCAL,<,@,D,H,L,P,8,,=FALSEDEFFILL0RGBCOLOR0PBOX,_Y-40,+7* ,_YIFEXIST(0)OPEN"i",#1,0<=@$(1)@=@$(2)D=@$(3)H=@$(4)L=@$(5)P=@$(6)=@$(7)IF<<>-1AND@<>-1ANDD<>-1ANDH<>-1ANDL<>-1ANDP<>-1AND<>-18=@<(<,@,D,H,L,P,)IF8=08=@<(,P,L,H,D,@,<)=TRUEENDIFIF8>0SEEK#1,8RGBCOLORRGB(255,0,0)FORT=0TO6=INP%(#1)=STR$()IF=FALSETEXT+T* + /2-TXTLEN()/2,_Y-40,ELSETEXT+(6-T)* + /2-TXTLEN()/2,_Y-40,ENDIFIFT=0OR>==TENDIFNEXTTIF=FALSEBOX+* -1,_Y-41,+* + -1,_Y-21ELSEBOX+(6-)* -1,_Y-41,+(6-)* + -1,_Y-21ENDIFRGBCOLORRGB(255,255,0)FORT=0TO6=INP%(#1)=STR$()IF=FALSETEXT+T* + /2-TXTLEN()/2,_Y-20,ELSETEXT+(6-T)* + /2-TXTLEN()/2,_Y-20,ENDIFIFT=0OR>==TENDIFNEXTTIF=FALSEBOX+* -1,_Y-20,+* + -1,_Y-1ELSEBOX+(6-)* -1,_Y-20,+(6-)* + -1,_Y-1ENDIFELSET"affstat:|i%="+STR$(8)ENDIF'ifi%>0ELSET"affStat:|"+STR$(<)+""+STR$(@)+""+STR$(D)+""+STR$(H)+""+STR$(L)+""+STR$(P)+""+STR$()ENDIF'sicomb-1CLOSE#1ENDIF'ifexistficstat$RETURN  NBNBTLZVxx.DDXXHTXXfft *f j\`~<@$(njrp$HNRp` ` ddj$j$n>n>rDPS2x<PPPPLPHPDP@P<8Z,<M.Z28YR StatPos :|i%=88n Z,8@@.Y|seek #1,i%+c2%*4=8+@*4=8@@Z28YV - i%=inp%(#1)=88j Z,8D@.Y |seek #1,i%+c3%*4=8+D*4=8D@Z28YP  - i%=88f Z,8H@.Y |seek #1,i%+c4%*4=8+H*4=8H@Z28YJ  - i%=88b Z,8L@.Y |seek #1,i%+c5%*4=8+L*4=8L@Z28YD  - i%=88^ Z,8P@.Y |seek #1,i%+c6%*4=8+P*4=8P@Z28Y>  - i%=88Z Z,8@.Y |seek #1,i%+c7%*4=8+*4=8@Z28Y8  - i%=88V 8m:TFUNCTION<(<,@,D,H,L,P,)LOCAL8,=0SEEK#1,<*48=INP%(#1)IF=TRUETHEN="StatPos:|i%="+STR$(8)IF8>0SEEK#1,8+@*4IF=TRUETHEN=+"|seek#1,i%+c2%*4="+STR$(8)+"+"+STR$(@)+"*4="+STR$(8+@*4)8=INP%(#1)IF=TRUETHEN=+"-i%=inp%(#1)="+STR$(8)IF8>0SEEK#1,8+D*4IF=TRUETHEN=+"|seek#1,i%+c3%*4="+STR$(8)+"+"+STR$(D)+"*4="+STR$(8+D*4)8=INP%(#1)IF=TRUETHEN=+"-i%="+STR$(8)IF8>0SEEK#1,8+H*4IF=TRUETHEN=+"|seek#1,i%+c4%*4="+STR$(8)+"+"+STR$(H)+"*4="+STR$(8+H*4)8=INP%(#1)IF=TRUETHEN=+"-i%="+STR$(8)IF8>0SEEK#1,8+L*4IF=TRUETHEN=+"|seek#1,i%+c5%*4="+STR$(8)+"+"+STR$(L)+"*4="+STR$(8+L*4)8=INP%(#1)IF=TRUETHEN=+"-i%="+STR$(8)IF8>0SEEK#1,8+P*4IF=TRUETHEN=+"|seek#1,i%+c6%*4="+STR$(8)+"+"+STR$(P)+"*4="+STR$(8+P*4)8=INP%(#1)IF=TRUETHEN=+"-i%="+STR$(8)IF8>0SEEK#1,8+*4IF=TRUETHEN=+"|seek#1,i%+c7%*4="+STR$(8)+"+"+STR$()+"*4="+STR$(8+*4)8=INP%(#1)IF=TRUETHEN=+"-i%="+STR$(8)IF8>0=8ENDIFENDIFENDIFENDIFENDIFENDIFENDIFTRETURNENDFUNC4*4*H:H:ZJfXT `V`vXd"8R^LZXhFR*^h~@L *4:@FLRX^fppxPS/r< PHPPT@PPPPPP8 'OAOAYYY'PPOAOOAOYY'PPOAOAZ'g @CgP @W'AAA'Z8g  8@Cg  g88@W8pZ8( 8N '8hA8hA8hA8hAdd'8hA8hA8hA8hAddY'8h8hAg80Cg8hA680W 8Hz KPd' Y7'8hAP8hAP8hAO8hAO'8hA8hA8hA8hA8h8hAg80Cg8hA680W8H '8hAO8hAO8hAP8hAP8 =PROCEDURE(,,,,,,@,,,H)LOCAL8, RGBCOLORRGB(255,255,255)BOX,,+PRED(),+PRED()RGBCOLORRGB(0,0,0)PBOX+1,+1,+PRED()-1,+PRED()-1RGBCOLORRGB(0,0,127)PBOX+1,+1,+PRED()-1,+GRAPHMODE,TRANSPARENTRGBCOLORRGB(200,200,200)TEXT+/2-TXTLEN(@)/2,+1,@RGBCOLORRGB(255,255,255)LINE,+,+,+RGBCOLORRGB(255,255,255)FOR8=1TO =+/2 = -TXTLEN(@(8))/2TEXT ,+/2+8*,@(8)NEXT8FOR8=1TOIF8=RGBCOLORRGB(255,255,255)PBOX+(8),+(8),+(8),+(8)RGBCOLORRGB(100,100,255)BOX+(8),+(8),+(8),+(8)RGBCOLORRGB(100,100,0)TEXT+((8)+(8))/2-TXTLEN(0(8))/2,+(8)+2,0(8)ELSEIF8=HRGBCOLORRGB(75,80,100)ELSERGBCOLORRGB(0,20,55)ENDIFPBOX+(8)+1,+(8)+1,+(8)-1,+(8)-1RGBCOLORRGB(255,255,255)BOX+(8),+(8),+(8),+(8)TEXT+((8)+(8))/2-TXTLEN(0(8))/2,+(8)+2,0(8)ENDIFIF8=HRGBCOLORRGB(200,255,200)BOX+(8)-1,+(8)-1,+(8)+1,+(8)+1ENDIFNEXT8RETURNF6F6TDf^""84Rj|"TN^Vpht@(P@F0XJ*~^ddlrPSn<VT4T8T@833<HH@jjjj0Z]ZCK @C6 8  |YD ZO < P] b  <  <@ <C ZC 4  |Y( ZO < P] F  <  <C@ 6(@ 4  |Y: ZO < P] X  < ii <CA6iA6i <0 <C6hg$YZ88hh8yY8yY8V6 hg$YZ8|8hhr8yY8yY8* ZmiZ`ih6 5gg6ggZZZZZZ @mZZHZ: DPHT`DL$D$H$LZ8nYD8hAYD8hA YH8hA YH8hA d888YYZZZZZZ @mZZHZ: YLYD YDA YH YHA #YHAB"YDB$YHB$L$D$H$L5BYDYB6BYHYBYY (":YY ZYYYBYBYXYY |YY 0ZAYYBYBYXAY |YY ZYAYBYBYXYA |YY D ZAAYBYBYXAA |Y ZYYBYXY |Y ZYYBYXY |Yb!ZAYBYXA |Y!ZAYBYXA |ZZZZZZ @mZZHZ: YL<"#Z8"YD8hAYD8hA YH8hA YH8hA "888\"D>#D D :##L$D$H$LYLz#P#ZYX |]%D%D D $H$L$D$H$LYLD$$ZYX |]%%DM%HSPHZZZZZZ @mZZHZ: %DK%HHP%HZZZZZZ @mZZHZ: xkkkk0@=PROCEDURE(@,8,4,VAR)LOCAL8,,,,<,,=0,,,,,=0,,,H=1DIM@(20),(20),(20),(20),(20),0(20)SETDC_DC(1)PAUSE1WINDGET14,=TXTLEN(@)+2=8DO=INSTR(,"|")IF>0<=MID$(,1,PRED())=MID$(,SUCC())ELSE<==""ENDIFINC@()=<=MAX(,TXTLEN(<))EXITIFLEN()=0LOOPPAUSE1=4DO=INSTR(,"|")IF>0<=MID$(,1,PRED())=MID$(,SUCC())ELSE<==""ENDIF=MAX(,TXTLEN(<)+6)EXITIFLEN()=0LOOP=+40=(+3)*=5=4DO=INSTR(,"|")IF>0<=MID$(,1,PRED())=MID$(,SUCC())ELSE<==""ENDIFINC()=()=()=+TXTLEN(<)+4()=++40()=<ADD,TXTLEN(<)+8IF>-5'=((-5)-())/2IF>0FOR8=1TOIF(8)=()ADD(8),ADD(8),ENDIFNEXT8ENDIF'=5ADD,+6ELSEIFLEN()=0=((-5)-())/2IF>0FOR8=1TOIF(8)=()ADD(8),ADD(8),ENDIFNEXT8ENDIFENDIFEXITIFLEN()=0LOOPIF=1(1)=5(1)=-5ENDIF=()+10=_X/2-/2=_Y/2-/2(,,,,,,@,,,H)DOP=D,T=HD=INKEY$MOUSED,H,L'EXITIFmk%=2'IFmx%<>mx1%ANDmy%<>my1%ANDmk%=0'IFmx%>Xa%ANDmx%<Xa%+Wa%ANDmy%>Ya%ANDmy%<Ya%+Ha%==0FOR8=1TOIFD>+(8)ANDD<+(8)ANDH>+(8)ANDH<+(8)=88=ENDIFNEXT8IF<>(,,,,,,@,,,H)ENDIFIFL=1ANDD>ANDD<+ANDH>ANDH<+IFH<+'(titre)=D-,=H-DOMOUSED,H,L=,==MAX(0,MIN(_X-,D-)),=MAX(0,MIN(_Y-,H-))IF<>OR<>IF>AND>'hautgauche~BitBlt(_DC(1),,,-,-,X,,,SRCCOPY)ENDIFIF<AND>'hautdroit~BitBlt(_DC(1),+,,-,-,X,+,,SRCCOPY)ENDIFIF>AND<'basgauche~BitBlt(_DC(1),,+,-,-,X,,+,SRCCOPY)ENDIFIF<AND<'basdroite~BitBlt(_DC(1),+,+,-,-,X,+,+,SRCCOPY)ENDIFIF>'gauche~BitBlt(_DC(1),,,-,,X,,,SRCCOPY)ENDIFIF>'haut~BitBlt(_DC(1),,,,-,X,,,SRCCOPY)ENDIFIF<'droite~BitBlt(_DC(1),+,,-,,X,+,,SRCCOPY)ENDIFIF<'bas~BitBlt(_DC(1),,+,,-,X,,+,SRCCOPY)ENDIF' AA%=1' GOTOAffichageAlert' AA1:(,,,,,,@,,,H)ENDIFEXITIFL=0LOOPELSE'ifmy%+(8)ANDD<+(8)ANDH>+(8)ANDH<+(8)=88=ENDIFNEXT8IFLEN(D)>0IFASC(D)=13ORASC(D)=10=1ENDIFENDIFIF>0DOMOUSED,H,LEXITIFL=0LOOP~BitBlt(_DC(1),,,,,X,,,SRCCOPY)EXITIFTRUEENDIFENDIFENDIF'ismk=1dansalerteIFLEN(D)>0IFASC(D)=13ORASC(D)=10=HIF>0DOMOUSED,H,LEXITIFL=0LOOP~BitBlt(_DC(1),,,,,X,,,SRCCOPY)EXITIFTRUEENDIFELSEIFASC(RIGHT$(D))=77H=SUCC(MOD(H,))(,,,,,,@,,,H)ELSEIFASC(RIGHT$(D))=75DECHIFH=0THENH=(,,,,,,@,,,H)ENDIFENDIFLOOPERASE(),(),(),(),0(),@()RETURN""""jj .Hb8h<vFNT\j,FL Zfj"@TXXff|$>X^lx| &F^l ..Zhz&6J.j<tNj~,,$B@X@X<FN`lx$dr4 "X >` B j   P $ T * x R    d $ h * | @  z     0  0  6  H      H L Z `  `  f f n ( n (  :        * N Z ^ b b p t $ 4 8 p |           , , : > TbhNZ``~~88RRZtt..4::>>hhnPSv<P=PROCEDURE()'SETDC_DC(1)'DEFFILL0'RGBCOLOR0'PBOX0,0,80,20'RGBCOLORRGB(255,0,255)'TEXT0,0,n%RETURN ,8HbpvPSb<Y':YL$D$H$LYLYLYDYYDYY @! YHYY A YHYY @! YDYBY DP$ @YHY BYBY P$Y YY YP\SZC:L$D$H$LYLd=PROCEDURECLS0ARRAYFILL(),0DOMOUSED,H,LEXITIFL=2IFL=1IFD>ANDD<+ *7ANDH>+ ANDH<+ *6 =SUCC((D-)/ )=SUCC(5-(H- -)/ )( ,)=MOD(( ,)+1,3)PAUSE1DOMOUSED,H,LEXITIFL=0LOOPENDIFENDIFLOOPRETURN "*&.<@NP`Z0\bj"n&8HLRX\bPS,DP8Pp 8nojZo B pZ Z@i 8O]pZ:0Zo pZ Z@ h  l8O]:4kFUNCTIOND(p,8)LOCAL ,=FALSEIF(8,6)=0DIM(7)FOR =1TO7( )=@@(p, )NEXT 0PRED(8),pFOR =1TO7IF@@(p, )>( )=TRUE =7ENDIFNEXT 4PRED(8)ERASE()ENDIFRETURNENDFUNC****@<@<HFHFVVznvvv((,PS0$@P8Pp$$$nZ$8$8$ppZ]"$$8$Y$$$$$2FUNCTION@(p,8)'Si2emplacementsconscutifsgagnentLOCAL$,=0,$=0FOR$=6DOWNTO1IF(8,$)=0(8,$)=pIF@(p)=TRUEINC$ELSECLR$ENDIF(8,$)=0IF$>=2=MAX(,$)$=1ENDIFELSE$=1ENDIFNEXT$RETURNENDFUNC>6T6TDhDh^|^|x    ,,0$PS jt<Z`DD -DD &Z<=PROCEDUREFULLW#1DOD=INKEY$IFLEN(D)>0?ASC(RIGHT$(D))EXITIFD=""ENDIFLOOPCLOSEW#1RETURN &.6@HVZZ``dfnjtPS \TP3s   FUNCTION$()LOCALIF>1="s"ELSE=""ENDIFRETURNENDFUNC*&80>4J<NBXL\T\T\TPSPL3< <L/Z0Z4 < <]] <FUNCTION$(L)LOCAL,<,<=""=LOC(#L)DOIFNOTEOF(#1)=INP|(#1)IF>31<=<+CHR$()ELSEEXITIFTRUEENDIFELSEEXITIFTRUEENDIFLOOPRETURN<ENDFUNC$$0,@<D@PP\^njPS't<Z<*.txtxPZ-Z&ZiZP+Z0Z4$Y Y2'[Y]YYY'Y-YCA$Y5I-$,Z)=PROCEDURECLOSEW#1FILESELECT"*.txt","",PFULLW#1PEEKEVENTPEEKEVENTPEEKEVENTPEEKEVENTPEEKEVENTPEEKEVENT?AT(1,1)PEEKEVENTPEEKEVENTPEEKEVENTPEEKEVENTPEEKEVENTOPEN"i",#1,PWHILENOTEOF(#1)PEEKEVENT=INP|(#1)IF<32RGBCOLORRGB(0,50,200)="["+STR$()+"]"ELSERGBCOLORRGB(0,0,0)=CHR$()ENDIF?;=+TXTLEN()IF>_X-50CLR?KEYGETENDIFWENDCLOSE#1RETURN (2.:2D6N:X>bBlFvTX\`dh|*.BRX^*vHPV`ddjpptPS <oZL+YZ,G AFFSTAT = OUIZ,G AFFSTAT = NONYYZ,GROUGES = HUMAIN0Z,G ROUGES = ORDIYYfZ,GJAUNES = HUMAINZ,G JAUNES = ORDIZ)=PROCEDUREOPEN"o",#1,LIF=TRUE?#1,"AFFSTAT=OUI"ELSE?#1,"AFFSTAT=NON"ENDIFIF=?#1,"ROUGES=HUMAIN"ELSE?#1,"ROUGES=ORDI"ENDIFIF=?#1,"JAUNES=HUMAIN"ELSE?#1,"JAUNES=ORDI"ENDIFCLOSE#1RETURN 0,J@PDjXn^j PS=<<3<PTLiZL+?] <ZC < <ZC < < <ZoAFFSTAT <OUIYP <NONUYTPT PT PT <ZmROUGE <HUMAINYP <ORDIYTPT ZPT PT <ZmJAUNE <HUMAINYP <ORDIYTPT :PT dPTZZ)=PROCEDURELOCAL<,P,TIFEXIST(L)OPEN"i",#1,LDO<=@$(1)PAUSE1<=UCASE$(<)PAUSE1<=TRIM$(<)IFMID$(<,1,7)="AFFSTAT"P=INSTR(<,"OUI")T=INSTR(<,"NON")IFP>0ANDT=0=TRUEELSEIFP=0ANDT>0=FALSEELSEIFP>T=FALSEELSE=TRUEENDIFENDIFIFMID$(<,1,5)="ROUGE"P=INSTR(<,"HUMAIN")T=INSTR(<,"ORDI")IFP>0ANDT=0=ELSEIFP=0ANDT>0=ELSEIFP>T=ELSE=ENDIFENDIFIFMID$(<,1,5)="JAUNE"P=INSTR(<,"HUMAIN")T=INSTR(<,"ORDI")IFP>0ANDT=0=ELSEIFP=0ANDT>0=ELSEIFP>T=ELSE=ENDIFENDIFEXITIFEOF(#1)LOOPCLOSE#1ENDIFRETURN  ,.,.@>DBDBXP^Xnjtr":$B0H4T>XD\J\Jzd~"(48 <<Z,vF^t~((.48<PS n~<Z<ZX$YXY4-YZ<=PROCEDURECLOSEW#1FULLW#1DOX==GetAsyncKeyState(27)IFX<>?BIN$(,16)ENDIFLOOPCLOSEW#1RETURN  $&.4HHVZd^jdnjxn~PSrTPPp8Zo88n8O]pZ:0pZ]"ppZ]"Fp0 @@p]ZT@p]]"p 8O]:48nFUNCTIONT(p,)LOCAL8,FOR8=1TO7IF(8,6)=008-1,pIF@(p)=TRUEIFp=1=1000ELSE=-1000ENDIFELSEIF@(p)=TRUEIFp=1=800ELSE=-800ENDIFELSEIF>0=@T(3-p,)ELSEIF@(3-p)=TRUEIFp=1=-800ELSE=800ENDIFENDIF48-1ENDIFNEXT8RETURNENDFUNC$$24HFdV~jt~>dv",0:@FRX`jrEP