Code : Tout sélectionner
ON INTERVAL=NUM GOSUB NNNN
Modérateurs : Papy.G, fneck, Carl
Code : Tout sélectionner
ON INTERVAL=NUM GOSUB NNNN
Code : Tout sélectionner
10 '--------- INITIALISATION -----------------
20 CLEAR,,100:RE=400:V=100:R=1:TIMER=60
30 CLS:SCREEN4,0,0
60 DIM N1(8,35),N2(8,16),S1(8,35),S2(8,16):VI=5:SON2=-1
100 '*****************************************
110 '* DONNEES GRAPHIQUES *
120 '*****************************************
200 DEFGR$(72)=144,144,144,240,240,144,144,144
205 DEFGR$(06)=024,255,024,024,024,255,024,024
210 DEFGR$(07)=255,255,255,255,255,119,085,004
215 DEFGR$(08)=255,255,255,255,255,221,226,040
220 DEFGR$(24)=132,073,082,074,051,148,120,024
225 DEFGR$(25)=132,067,068,040,081,182,056,024
230 DEFGR$(43)=255,219,219,219,219,219,219,255
235 DEFGR$(51)=056,056,144,124,018,056,120,248
240 DEFGR$(60)=159,096,000,243,012,124,129,000
245 DEFGR$(83)=240,144,128,240,016,016,144,000
250 DEFGR$(99)=000,000,240,144,128,128,144,022
255 DEFGR$(11)=000,000,240,144,144,144,144,240
260 DEFGR$(14)=000,000,160,208,208,128,128,128
265 DEFGR$(01)=000,000,240,144,240,128,128,240
270 DEFGR$(08)=064,064,064,064,064,064,064,096
275 DEFGR$(69)=240,144,128,128,192,128,144,240
280 DEFGR$(10)=000,000,176,208,144,144,144,144
285 DEFGR$(03)=000,000,240,144,144,240,016,240
290 DEFGR$(05)=000,000,064,000,064,064,064,096
295 DEFGR$(48)=060,036,036,036,036,036,036,060
300 DEFGR$(49)=008,002,004,040,008,008,008,008
305 DEFGR$(50)=016,040,040,008,008,016,032,056
310 DEFGR$(51)=016,040,040,008,016,008,040,016
315 DEFGR$(52)=008,016,032,040,056,008,008,008
320 DEFGR$(53)=056,032,032,032,056,008,008,056
325 DEFGR$(54)=008,016,032,032,048,040,040,016
330 DEFGR$(55)=056,008,008,056,016,016,032,032
335 DEFGR$(56)=056,040,040,040,056,040,040,056
340 DEFGR$(57)=056,040,040,056,008,008,040,056
341 DEFGR$(86)=144,144,144,144,144,144,096,096
342 DEFGR$(46)=000,000,000,000,000,028,020,028
343 DEFGR$(37)=200,136,016,032,032,064,136,152
344 DEFGR$(60)=000,000,000,000,000,024,056,000
345 DEFGR$(61)=000,000,000,000,000,024,056,255
350 DEFGR$(85)=006,006,060,012,018,016,104,008
355 DEFGR$(86)=006,006,024,046,016,024,036,036
360 DEFGR$(87)=255,000,000,239,000,254,000,239
365 DEFGR$(89)=153,090,060,024,024,036,036,036
370 DEFGR$(88)=193,062,048,203,004,254,034,221
375 DEFGR$(90)=129,129,255,129,129,129,255,129
380 DEFGR$(91)=096,096,028,048,072,008,022,016
385 DEFGR$(92)=096,096,024,116,008,024,036,036
390 DEFGR$(94)=025,026,252,024,024,038,065,128
395 DEFGR$(93)=152,088,063,024,024,100,130,001
400 DEFGR$(95)=153,090,060,024,024,036,036,036
410 DEFGR$(96)=255,192,031,192,127,192,255,255
420 DEFGR$(97)=016,018,082,090,218,218,218,218
430 DEFGR$(98)=130,130,146,146,210,218,218,218
440 HD$(1)=GR$(85):HD$(3)=GR$(86):HG$(1)=GR$(91):HG$(3)=GR$(92):SO$(0)=GR$(87):SO$(1)=GR$(88):EC$=GR$(90):NO$=GR$(37):TABL=1:DR=2:E=1:X=13:Y=16:DIM PT(36,17):HH$(1)=GR$(94):HH$(3)=GR$(93):HT$=GR$(95):PICG$=GR$(96):EN=99:LK=1
450 IF TABL>6 THEN SO$(0)=GR$(07):SO$(1)=GR$(08):EC$=GR$(06):PIC$(0)=GR$(24):PIC$(1)=GR$(25) ELSE SO$(0)=GR$(87):SO$(1)=GR$(88):EC$=GR$(90):PIC$(0)=GR$(97):PIC$(1)=GR$(98)
460 SG1$=GR$(44):SG2$=GR$(60):SG3$=GR$(61)
470 FORI=1TO36:FORK=1TO17:LOCATEI,K:?" ":PT(I,K)=0:NEXT:NEXT:ON TABL GOSUB 480,490,500,510,520,530,540,550,2250:GOTO560
480 RESTORE1400:RETURN
490 RESTORE1460:RETURN
500 RESTORE1510:RETURN
510 RESTORE1560:RETURN
520 RESTORE1600:RETURN
530 RESTORE1660:RETURN
540 RESTORE1710:RETURN
550 RESTORE1760:RETURN
560 COLOR8
570 IF TABL=1 THEN FOR I=1 TO17:LOCATE6,I:?SO$(INT(RND*2)):PT(6,I)=1:NEXT:LOCATE6,16:?PICG$
580 IF TABL=3 THEN FOR I=1 TO17:LOCATE35,I:?SO$(INT(RND*2)):PT(35,I)=1:NEXT
590 IF TABL=4 THEN FOR I=1 TO17:LOCATE6,I:?SO$(INT(RND*2)):PT(6,I)=1:NEXT:FOR I=3 TO12:LOCATE33,I:?SO$(INT(RND*2)):PT(33,I)=1:NEXT:FOR I=6 TO9:LOCATE29,I:?SO$(INT(RND*2)):PT(29,I)=1:NEXT:FOR I=11 TO12:LOCATE19,I:?SO$(INT(RND*2)):PT(19,I)=1:NEXT
610 IF TABL=5 THEN FOR I=2 TO4:LOCATE31,I:?SO$(INT(RND*2)):PT(31,I)=1:NEXT:FOR I=13 TO14:LOCATE7,I:?SO$(INT(RND*2)):PT(7,I)=1:NEXT
620 IF TABL=6 THEN FOR I=1 TO17:LOCATE35,I:?SO$(INT(RND*2)):PT(35,I)=1:NEXT
630 IF TABL=7 THEN FOR I=2 TO10:LOCATE 23,I:?SO$(INT(RND*2)):PT(23,I)=1:NEXT:FOR I=1 TO17:LOCATE6,I:?SO$(INT(RND*2)):PT(6,I)=1:NEXT:FOR I=11 TO16:LOCATE13,I:?SO$(INT(RND*2)):PT(13,I)=1:NEXT
640 COLOR7
650 LOCATE4,20:?"SALLE..."TABL:LOCATE4,22:PRINT"SCORE..."SC:LOCATE20,20:?"ENERGIE..."EN"%":LOCATE20,22:?"VIE..."VI:LOCATE29,22:?"HI..."RE
660 IF TABL=9 THEN760
670 I=0:READ SO:COLOR8
680 I=I+1:READA,B,C:FOR D=A+5 TOB+5:LOCATED,C:?SO$(INT(RND*2)):PT(D,C)=1:NEXT:IF I<>SO THEN680
690 I=0:READ EC:COLOR7
700 I=I+1:READA,B,C:FOR D=A TOB:LOCATEC+5,D:?EC$:PT(C+5,D)=2:NEXT:IF I<>EC THEN700
710 I=0:READ NO:COLOR14
720 I=I+1:READA,B:IF N1(TABL,A+5)=0 OR N2(TABL,B)=0 THEN LOCATEA+5,B:?NO$:PT(A+5,B)=3
730 IF I<>NO THEN720
740 I=0:READ PIC:COLOR10
750 I=I+1:READA,B,C:FOR D=A+5 TOB+5:LOCATED,C:?PIC$(INT(RND*2)):PT(D,C)=4:NEXT:IF I<>PIC THEN750
760 COLOR1:LOCATEX,Y:?HT$
770 'RESTORE2410
780 'TIMER=60
790 A$=INKEY$:GOSUB1870
791 IF A$=CHR$(9) THEN DD=1:GOTO920
800 IF A$=CHR$(32) THEN IF R=1 THEN RR=0:R=-R:GOTO770 ELSE IF R=-1 THEN GOSUB 2390:R=-R:GOTO770
810 IF A$=CHR$(8) THEN DD=-1:GOTO1010
820 IF A$=CHR$(11) THEN DD=0:GOTO1100
830 IF A$=CHR$(10) THEN DD=0:GOTO1170
840 IF A$=CHR$(13) THEN GOTO1230
850 IF PT(X,Y+1)=0 AND PT(X,Y)<>2 AND PT(X,Y)<>3 THEN LOCATE X,Y:?" ":Y=Y+1:LOCATE X,Y:?HT$:J=1:IF Y=17 THEN Y=1:TABL=TABL+3:GOTO450
860 IF J=1 AND PT(X,Y+1)=4 THEN GOSUB1910:GOTO760
870 IF J=1 THEN J=0:GOTO850
880 IF PT(X,Y)=3 THEN PT(X,Y)=0:N1(TABL,X)=1:N2(TABL,Y)=1:SC=SC+10:LOCATE12,22:COLOR7:?SC::PLAY"L4A2DOREMI"
890 IF PT(X,Y+1)=4 THEN GOSUB1910:GOTO760
900 ON TABL GOTO 1800,2100,2140,2170,2190,1820,2220,2320,2330
910 GOTO 760
920 '---------- DEPLACEMENT VERS LA DROITE'
925 IF PT(X+1,Y)=1 THEN GOTO850
930 IF PT(X,Y)=0 THEN C$=" "
935 IF PT(X,Y)=1 THEN C$=SO$(1)
940 IF PT(X,Y)=2 THEN C$=EC$:COLOR7
950 IF PT(X,Y)=3 THEN PT(X,Y)=0:C$=" ":N1(TABL,X)=1:N2(TABL,Y)=1:SC=SC+10:LOCATE12,22:COLOR7:?SC:PLAY"L4A2DOREMI"
960 IF PT(X,Y)=4 THEN C$=PIC$(INT(RND*2)):COLOR10
970 LOCATEX,Y:?C$
980 X=X+1:LOCATEX,Y:COLOR1:?HD$(DR+E):E=-E:PLAY"L1A3MI":HH=0
990 IF X=36 THEN TABL=TABL+1:X=6:LOCATE36,Y:?GR$(49):GOTO450
1000 GOSUB1870:GOTO850
1010 '---------- DEPLACEMENT VERS LA GAUCHE'
1015 IF PT(X-1,Y)=1 THEN GOTO850
1020 IF PT(X,Y)=0 THEN C$=" "
1030 IF PT(X,Y)=2 THEN C$=EC$:COLOR7
1040 IF PT(X,Y)=3 THEN PT(X,Y)=0:C$=" ":N1(TABL,X)=1:N2(TABL,Y)=1:SC=SC+10:LOCATE12,22:COLOR7:?SC:PLAY"L4A2DOREMI"
1050 IF PT(X,Y)=4 THEN C$=PIC$(INT(RND*2)):COLOR10
1060 LOCATEX,Y:?C$
1070 X=X-1:LOCATEX,Y:COLOR1:?HG$(DR+E):E=-E:PLAY"L1A3MI":HH=0
1080 IF X=5 THEN TABL=TABL-1:X=35:LOCATE5,Y:?GR$(49):GOTO450
1090 GOSUB1870:GOTO850
1100 '----------- DEPLACEMENT VERS LE HAUT'
1105 IF PT(X,Y-1)<>2 AND PT(X,Y)<>2 THEN GOTO850
1110 IF PT(X,Y-1)=1 THEN GOTO850
1120 IF PT(X,Y)<>2 AND PT(X,Y-1)=2 THEN C$=" " ELSE C$=EC$:COLOR7
1130 IF Y=1 THEN TABL=TABL-3:Y=16:GOTO450
1140 LOCATEX,Y:?C$:Y=Y-1:LOCATEX,Y:COLOR1:?HH$(DR+E):E=-E:PLAY"L1A3SI"
1150 IF Y=1 THEN TABL=TABL-3:Y=16:GOTO450
1160 GOSUB1870:GOTO850
1170 '----------- DEPLACEMENT VERS LE BAS'
1175 IF PT(X,Y+1)<>2 AND PT(X,Y)<>2 THEN GOTO850
1180 IF PT(X,Y+1)=1 THEN GOTO850
1190 IF PT(X,Y)<>2 AND PT(X,Y+1)=2 THEN C$=" " ELSE C$=EC$:COLOR7
1200 LOCATEX,Y:?C$:Y=Y+1:LOCATEX,Y:COLOR1:?HH$(DR+E):E=-E:PLAY"L1A3SI"
1210 IF Y=17 THEN TABL=TABL+3:Y=1:GOTO450
1220 GOSUB1870:GOTO850
1225 '--------------- TOUCHE ENTREE'
1230 A$=INKEY$
1235 IF A$=CHR$(9) THEN DD=1
1240 IF A$=CHR$(8) THEN DD=-1
1250 PLAY"L1A3MISI":HH=0:FOR I=0TO2
1260 IF PT(X,Y)=0 THEN C$=" "
1270 IF PT(X,Y)=2 THEN C$=EC$:COLOR7
1280 IF PT(X,Y)=3 THEN C$=" ":PT(X,Y)=0:N1(TABL,X)=1:N2(TABL,Y)=1:SC=SC+10:LOCATE12,22:COLOR7:?SC::PLAY"L2A2LAMIRE"
1290 IF PT(X,Y)=4 THEN C$=PIC$(INT(RND*2)):COLOR10
1300 IF PT(X+DD,Y-1)=1 THEN GOSUB1870:GOTO850
1310 LOCATEX,Y:?C$:X=X+DD:Y=Y-1
1320 IF DD=1 THEN H$=HD$(1) ELSE IF DD=0 THEN H$=HH$(1) ELSE IF DD=-1 THEN H$=HG$(1)
1330 LOCATE X,Y:COLOR1:?H$
1340 IF X=36 THEN TABL=TABL+1:LOCATE36,Y:?GR$(49):X=6:GOTO450
1350 IF X<=5 THEN TABL=TABL-1:LOCATEX,Y:?GR$(49):X=35:GOTO450
1360 IF Y=1 THEN TABL=TABL-3:Y=16:GOTO450
1370 NEXT
1380 LOCATEX,Y:COLOR1:?H$:PLAY"L1A3MI"
1390 GOSUB1870:GOTO850
1400 '-------------- SALLE 1 -----------------
1410 DATA17,02,30,01,09,11,04,17,20,04,13,16,05,23,28,05,02,09,06,21,22,06,11,18,08,02,09,10,20,22,10,24,30,11,11,14,12,10,10,13,16,20,13,09,09,14,08,08,15,02,30,17
1420 DATA05,06,09,03,04,05,12,04,05,21,05,10,28,13,16,21
1430 DATA10,09,03,16,04,26,04,07,05,15,07,08,09,21,09,27,10,18,12,09,13
1440 DATA06,04,07,09,09,20,16,11,14,07,18,20,03,22,30,16,24,26,10
1450'---------------- SALLE 2 ----------------
1460 DATA11,01,30,01,01,17,04,18,30,05,18,20,06,18,20,07,01,11,08,18,30,08,01,20,11,09,14,14,21,27,15,01,30,17
1470 DATA08,04,07,11,05,07,21,05,07,28,08,10,08,11,13,12,11,14,21,14,16,08,15,17,28
1480 DATA11,01,03,15,03,24,04,30,04,05,07,03,10,16,10,14,13,26,14,04,16,25,07
1490 DATA08,08,10,07,22,24,07,26,27,07,29,30,07,06,07,10,09,15,10,17,19,10,09,22,16
1795 '------------------- PIEGE SALLE 1'
1800 IF X=12 AND Y=16 AND PT(X+1,Y)=1 AND HH=0 THEN COLOR1:LOCATEX,Y:?HT$:COLOR8:?" ":FOR I=6TO10:FOR K=1 TO200:NEXT:LOCATEI,16:?"-"+PICG$:NEXT:GOSUB1910:GOTO1805
1801 IF X=12 AND Y=16 AND PT(X+1,Y)=0 THEN COLOR8:LOCATE13,16:?SO$(1):LOCATE13,15:?" ":PT(X+1,Y)=1:S1(TABL,X+1)=1:S2(TABL,Y)=1:HH=1:GOTO790
1802 IF X=13 AND Y=14 THEN COLOR8:LOCATE13,16:?SO$(1):LOCATEX,Y:?" ":Y=Y+1:COLOR1:LOCATEX,Y:?HT$:PT(X,Y+1)=1:S1(TABL,X)=1:S2(TABL,Y+1)=1:GOTO760 ELSE GOTO790
1805 COLOR8:FOR I=10TO6 STEP-1:FOR K=1 TO200:NEXT:LOCATEI,16:?"-"+PICG$+" ":NEXT:LOCATE6,16:?PICG$+" ":X=X+1
1810 GOTO760
1870 '---------------- TIMER'
1880 TIMER=TIMER-2:IF TIMER =0 THEN EN=EN-1:LOCATE30,20:COLOR7:?EN"% ":TIMER=60:IF EN=0 THEN GOSUB1910:GOTO760
1890 RETURN
1910 EN=99:TIMER=60:COLOR1
1920 IF PT(X,Y+1)=4 THEN LOCATEX,Y:?" ":Y=Y+1:LOCATEX,Y:?HT$
1940 FOR I=1 TO V:NEXT
1950 LOCATEX,Y:?SG1$
1960 FOR I=1 TO V:NEXT
1970 LOCATEX,Y:?SG2$
1980 FOR I=1 TO V:NEXT
1990 LOCATEX,Y:?SG3$
2000 FOR I=1 TO V:NEXT
2010 VI=VI-1:IF VI=0 THEN GOTO2530
2020 '
2030 COLOR7:LOCATE20,22:?"VIE...";VI
2050 IF TABL=2 AND X=29 AND Y=15 THEN Y=16
2060 IF TABL=9 AND Y=16 THEN Y=6:X=6
2070 IF TABL=1 AND X=12 AND Y=16 THEN X=13
2080 IF TABL=6 AND X=30 AND Y=17 THEN X=31:Y=16
2090 RETURN
2100 IF X<>29 OR Y<>14 THEN790
2110 IF X=29 AND Y=14 THEN COLOR8:LOCATE28,15:?" ":LOCATE29,14:?" ":LOCATE28,16:?SO$(0)+SO$(0)+SO$(1):COLOR1:LOCATE29,15:?HT$:Y=Y+1 ELSE 2130
2120 FORI=0TO2:COLOR8:LOCATE25+I,15:?" "+SO$(0)+SO$(0):LOCATE31-I,15:?SO$(1)+SO$(0)+" ":FORK=1TO500:NEXT:NEXT:GOSUB1910
2130 Y=16:GOTO760
2390 FOR I=9 TOX:LOCATEI,7:COLOR8:?" "STRING$(11,SO$(0)):FOR K=1 TO100:NEXT:PT(I,7)=0:NEXT
2400 GOTO850
2430 RETURN
Code : Tout sélectionner
10 DIM A(10)
20 CLEAR A
30 DIM A(50)
Code : Tout sélectionner
10 DIM A(10),B(10):' A=TRAVAIL / B=TEMP
20 Z=50:ERASE B:DIM B(Z):FOR C=1 TO Z:B(C)=A(C):NEXT
30 ERASE A:DIM A(Z+30):FOR C=1 TO Z:A(C)=B(C):NEXT
40 ERASE B
Ben il s'agit de l'adaptation de crazy love
C'est ce que j'ai fait. Mais sur Thomson c'est lent... Très lent...
Code : Tout sélectionner
470 FORI=1TO36:FORK=1TO17:LOCATEI,K:?" ":PT(I,K)=0:NEXT:NEXT
Code : Tout sélectionner
470 FORI=1TO36:FORK=1TO17:LOCATEI,K:?" ":PT(I,K)=0:NEXT:NEXT