10 REM TAQUIN FUTE de Franck-Olivier Lelaidier 20 REM Initialisation 30 CLS 40 RANDOMIZE 50 DIM PO$(8),P$(8) 60 PO$(1)="on ne pile" 70 PO$(2)="pas is mil" 80 PO$(3)="avec une " 90 PO$(4)="banane " 100 PO$(5)="molle" 110 PO$(6)="" 120 PO$(7)="Proverbe " 130 PO$(8)="gabonais ?" 140 FOR I=1 TO 8 150 P$(1)=P0S(I) 160 NEXT I 170 X=10 180 X1=X 190 Y=8 200 Y1=Y 210 REM Mélange 220 GOSUB 570 230 REM Affichage 240 GOSUB 490 250 REM JEU 260 B$=INKEY$:IF B$="" THEN 260 ELSE R=ASC(B$) 270 IF R<>71 AND R<>72 AND R<>89 AND R<>66 THEN 26 0 280 REM Vrai=-1 Faux=0 290 DX=(R=71)-(R=72) 300 DY=(R=89)-(R=66) 310 X1=X+DX:Y1=Y+DY 320 IF X1<=0 OR Y1<=0 OR X1>10 OR Y1>8 THEN 260 330 REM Permutation 340 GOSUB 420 350 REM Affichage 360 GOSUB 490 370 FOR I=1 TO 8 380 IF P$(1)<>PO$(1) THEN 260 390 NEXT I 400 PRINT"GAGNE" 410 STOP 420 REM ** PERMUTATIONS ** 430 P$(Y)=LEFTS(P$(Y),X-1)+MID$(P$(9-Y),11-X,1)+MI D$(P$(Y),X+1) 440 P$(9-Y)=LEFTS(P$(9-Y),10-X)+MID$(P$(Y1),X1,14+ MID$(P$(9-Y),12-X) 450 P$(Y1)=LEFT$(P$(Y1),X1-1)+"?"+MID$(P$(Y1),X1+1 460 X=X1 470 Y=Y1 480 RETURN 490 REM *** AFFICHAGE *** 500 CLS 510 PRINT 520 FOR I=1 TO 8 530 PRINT" .";PO$(1);". .";P$(1):"." 540 NEXT I 550 PRINT 560 RETURN 570 REM *it** MELANGE **** 580 FOR J=1 TO RND(1)*10+1 590 DX=INT(-2.RND(1)*(X<>10)+RND(1)*(X<>1)) 600 DY=0 610 X1=X+DX 620 GOSUB 420 630 GOSUB 490 640 REM 650 DY=INT(-2.RND(1)*(Y<>8)+RND(1)*(Y<>1)) 660 Y1=Y+DY 670 GOSUB 420 680 GOSUB 490 690 REM 700 NEXT J 710 RETURN