10 REM --------------------------------
20 REM ------ ----- 30 REM ------ à LE BOMBARDIER ----- 40 REM ------ ----- 50 REM ------ Par Alain CORBIERE ----- 60 REM ------ ----- 70 REM ------ et ----- 80 REM ------ ----- 90 REM ------ Amstrad Magazine ----- 100 REM ----- ----- 110 REM ------------------------------- 120 ENV 6,11,-1,30:ENV 3,1,60,1:ENT 1,100,2,2:ENT 4,239,60,5:ENT -8,5,-16,1,2,39,1 130 GOSUB 980:GOSUB 2600 140 DIM m(42,25),place(40) 150 rec=0 160 tableau=0:sc=0:secs=45 170 SOUND 0,0,0,0,0,0,0 180 MODE 1:INK 0,0:INK 1,25:INK 2,19:INK 3,15:BORDER 0 190 x=1:y=1:z=x 200 GOSUB 760:GOSUB 580 210 tableau=tableau+1:para=0 220 REM ====== DEROULEMENT ===== 230 WHILE m(x+2,y)=0 240 PEN 1 250 k$=INKEY$ 260 SOUND 1,750,1,15,0,0,1 270 x=x+1 280 IF y=2 AND x=2 THEN GOSUB 950:PEN 1 290 IF x=40 THEN x=1:y=y+1:LOCATE 38,y-1:PRINT" " 300 LOCATE x,y:PRINT " éè[" 310 IF z=1 AND x-2*INT(x/2)=0 AND k$=" " AND Y<24 THEN z=0:t=x:s=y 320 IF z=0 THEN PEN 3 330 IF z=0 THEN s=s+1:LOCATE t,s:PRINT "]£" 340 IF m(t,s)>0 THEN sc=sc+1:IF y>1 THEN PEN 3:LOCATE 20,1:PRINT sc:PEN 1 350 IF z=0 AND s>y THEN LOCATE t,s-1:PRINT " ":m(t,s)=0:m(t+1,s)=0:w=y+15:IF w>24 THEN w=24 360 IF z=0 AND s=w THEN z=1:s=1:m(t,w)=2:IF m(t,w+1)=2 THEN LOCATE t,w:PRINT"_^":w=1 ELSE LOCATE t,w:PRINT" " 370 IF s=1 AND W=24 THEN m(t,w)=0 380 IF y=24 AND x=18 THEN GOTO 1270 390 IF z=1 AND x-2*INT(x/2)=0 AND k$=" " AND Y<24 THEN z=0:t=x:s=y 400 WEND 410 SOUND 1,284,200,15,0,1 420 IF x=1 THEN x=x+1 430 IF m(x+2,y)=0 THEN LOCATE x+2,y:PRINT" " ELSE LOCATE x+2,y:PRINT"_^" 440 FOR i=y TO 24 450 LOCATE x,i:PRINT"é";CHR$(146) 460 LOCATE x,i-1:PRINT" " 470 NEXT 480 FOR i=0 TO 25 490 FOR j=0 TO 42 500 m(j,i)=0 510 NEXT j 520 IF i<10 THEN OUT 255,8:OUT 256,1 ELSE OUT 256,2:SPEED INK 7,8:INK 0,5,16:BORDER 16,5 530 NEXT i 540 INK 0,0:SPEED INK 25,25:PAPER 0:BORDER 0:PEN 1 550 IF sc>rec THEN SOUND 1,300,300,15,6,8 ELSE 1730 560 rec=sc 570 GOTO 1720 580 REM'====== IMMEUBLES ===== 590 FOR c=2 TO 39 600 PEN 2 610 LOCATE c,25:PRINT CHR$(127) 620 NEXT 630 FOR i=2 TO 39 STEP 2 640 r%=RND*15+tableau 650 IF r%<5 OR r%>20 THEN 640 660 FOR j=0 TO r% 670 IF j>15 THEN PEN 1 ELSE PEN j 680 IF j=0 OR j=4 OR j=8 OR j=12 THEN j2=j+1:PEN j2 690 IF j+1=r% THEN j1=j2 700 LOCATE i,24-j 710 IF j=r% THEN PEN j1:PRINT CHR$(214);CHR$(215):m(i,24-j)=1:m(i+1,24-j)=1:GOTO 730 720 PRINT CHR$(141);CHR$(142):m(i,24-j)=2:m(i+1,24-j)=2 730 NEXT j,i 740 RETURN 750 REM ====== REDEFINITION ====== 760 SYMBOL AFTER 64 770 SYMBOL 91,0,248,0,196,244,252,244,228 780 SYMBOL 93,0,3,1,3,3,3,1,0 790 SYMBOL 94,0,0,0,0,74,254,254,254 800 SYMBOL 95,0,0,0,0,43,63,127,127 810 SYMBOL 123,96,240,248,252,135,255,127,31 820 SYMBOL 125,0,63,1,3,255,255,255,255 830 SYMBOL 129,0,0,0,3,7,15,31,63 840 SYMBOL 130,0,0,0,192,224,240,248,252 850 SYMBOL 131,3,13,26,53,42,87,124,8 860 SYMBOL 132,224,88,172,86,170,245,63,8 870 SYMBOL 133,9,13,4,3,0,1,1,1 880 SYMBOL 134,200,216,144,224,128,64,64,64 890 SYMBOL 141,127,113,113,113,113,127,127,127 900 SYMBOL 142,254,142,142,142,142,254,254,254 910 SYMBOL 146,128,112,8,128,192,208,154,255 920 SYMBOL 163,0,192,128,192,192,192,128,0 930 RETURN 940 REM ====== AFFICHAGE ====== 950 PEN 2 960 LOCATE 2,1:PRINT"TAB. No:";tableau;"SCORE :";SPACE$(6);"RECORD :";rec 970 RETURN 980 REM ====== PRESENTATION ===== 990 MODE 0 :INK 1,6,20:INK 2,2:SPEED INK 15,15:PEN 2 1000 a$=" Alain CORBIERE":b$="et":c$="Amstrad Magazine":d$="PRESENTENT :":e$=" LE BOMBARDIER" 1010 LOCATE 4,6 1020 FOR i=1 TO LEN (a$) 1030 PRINT MID$ (a$,i,1); 1040 SOUND 1,50+(i*30),2,15 1050 FOR j=0 TO 100:NEXT j 1060 NEXT i 1070 LOCATE 3,6:PRINT CHR$(164); 1080 PEN 3 1090 LOCATE 10,9:PRINT b$ 1100 PEN 8 1110 LOCATE 3,12:PRINT c$ 1120 PEN 9 1130 LOCATE 6,15:PRINT d$ 1140 PEN 1 1150 FOR i=1 TO LEN (e$) 1160 LOCATE 1,19 1170 PRINT RIGHT$(e$,i); 1180 NEXT 1190 REM ====== MUSIQUE 1 ====== 1200 FOR j=0 TO 19 1210 READ a 1220 SOUND 1,a,18,15 1230 NEXT 1240 DATA 478,284,239,379,319,358,426,478,239,426,239,478,426,379,358,358,319,284,319,239,239,239,239,478,284,239 1250 FOR i=1 TO 1000:NEXT i 1260 RETURN 1270 REM ====== MUSIQUE 2 ====== 1280 RESTORE 1330 1290 FOR i=0 TO 11 1300 READ a,b 1310 SOUND 1,a,b,15 1320 NEXT 1330 DATA 213,15,213,25,253,15,213,15,201,15,213,15,239,15,253,15,284,25,253,25,284,25,426,15 1340 REM ====== BONUS ====== 1350 chrono=secs 1360 MODE 1:INK 2,11,4:SPEED INK 10,10:PEN 2 1370 LOCATE 11,8:PRINT"BONUS de" 1380 PEN 3 1390 LOCATE 20,8:PRINT "120 Points" 1400 PEN 1 1410 LOCATE 3,13:PRINT"Si vous larguez les 6 parachutistes" 1420 PEN 3 1430 LOCATE 13,17:PRINT"Au bon endroit !" 1440 LOCATE 11,21:PRINT"En moins de" 1450 PEN 2 1460 LOCATE 23,21:PRINT secs;"secs." 1470 GOSUB 2020:GOTO 2120 1480 REM ====== RESULTAT ====== 1490 secs=secs-5 1500 MODE 1:INK 0,0:INK 1,25:INK 2,11,4:INK 3,0,26:BORDER 0 1510 IF para<>0 THEN 1550 1520 PEN 2 1530 LOCATE 7,12:PRINT"Desole ... Pas de bonus !!!!" 1540 GOTO 1640 1550 PEN 1 1560 LOCATE 9,7:PRINT"Votre score est maintenant" 1570 LOCATE 17,10:PRINT"De :" 1580 PEN 2 1590 LOCATE 21,10:PRINT sc 1600 PEN 1 1610 LOCATE 8,14:PRINT"Grace aux :";para;"parachutistes" 1620 PEN 1 1630 LOCATE 9,20:PRINT"Largues au bon endroit !!" 1640 PEN 3 1650 LOCATE 2,24:PRINT"Appuyez sur une touche pour continuer" 1660 CALL &BB06 1670 MODE 0:INK 3,6,11:PEN 3 1680 LOCATE 6,12:PRINT"ATTENTION !" 1690 FOR i=0 TO 1500:NEXT 1700 MODE 1 1710 GOTO 170 1720 REM ====== FIN DE LA PARTIE ====== 1730 CLS 1740 PEN 3 1750 LOCATE 10,12:PRINT"Voulez-vous rejouer" 1760 PEN 2 1770 LOCATE 14,17:PRINT"Oui ou Non ?" 1780 IF INKEY(34)=0 THEN CLS:GOTO 160 1790 IF INKEY(46)=0 THEN 1810 1800 GOTO 1780 1810 CLS 1820 INK 1,11,6:INK 2,5:INK 3,6:SPEED INK 12,12:PEN 2 1830 LOCATE 16,6:PRINT"C'etait :" 1840 PEN 1 1850 LOCATE 14,14:PRINT"LE BOMBARDIER" 1860 f$=" Au revoir ! " 1870 FOR j=1 TO LEN(f$) 1880 FOR i=15 TO 21 1890 PEN 3 1900 LOCATE j+13,i:PRINT CHR$(252) 1910 IF i>15 THEN LOCATE j+13,i-1:PRINT" " 1920 SOUND 1,i*(j+13),5,15 1930 NEXT i 1940 LOCATE j+13,21:PRINT" " 1950 PEN 3 1960 LOCATE j+13,21:PRINT MID$(f$,j,1) 1970 NEXT j 1980 FOR i=0 TO 1000:NEXT 1990 PEN 2 2000 LOCATE 1,1 2010 END 2020 REM ====== SOUS-PROGRM ======= 2030 g$=" ... Appuyez sur une touche ..." 2040 FOR i=1 TO LEN(g$) 2050 PEN 1 2060 LOCATE 1,24:PRINT RIGHT$(g$,i); 2070 IF INKEY$<>"" THEN GOTO 2090 2080 NEXT 2090 IF INKEY$="" THEN 2090 2100 RETURN 2110 REM ====== BONUS-SUITE ====== 2120 INK 2,11:INK 3,6,24:BORDER 2,7 2130 FOR i=0 TO 40 2140 place(i)=0 2150 NEXT 2160 CLS 2170 FOR i=2 TO 39 2180 FOR j=23 TO 25 2190 PEN 1 2200 LOCATE i,j:PRINT CHR$(127) 2210 NEXT j,i 2220 FOR i=10 TO 30 STEP 4 2230 PEN 3 2240 LOCATE i,22:PRINT CHR$(129);CHR$(130) 2250 place(i)=1:place(i+1)=1 2260 NEXT 2270 h$=CHR$(131)+CHR$(132):i$=CHR$(133)+CHR$(134) 2280 x=0:z=1:t=1 2290 EVERY 50 GOSUB 2550 2300 PEN 1 2310 WHILE para<>6 2320 k$=INKEY$ 2330 x=x+1 2340 IF x=38 THEN x=1:y=1:DI:LOCATE 38,1:PRINT" ":EI 2350 DI:PEN 1 2360 LOCATE x,1:PRINT" éè[":EI 2370 SOUND 1,750,1,15,0,0,1 2380 DI:IF z=1 AND x-2*INT(x/2)=0 AND k$=" " THEN z=0:t=x:s=1:EI 2390 IF s>20 THEN z=1:s=1:t=1 2400 IF z=0 THEN s=s+1:DI:LOCATE t,s:PRINT h$:EI:DI:PEN 2:LOCATE t,s+1:PRINT i$:EI 2410 IF z=0 AND s>2 THEN DI:LOCATE t,s-2:PRINT " ":EI:DI:LOCATE t,s-1:PRINT " ":EI 2420 DI:IF z=1 AND x-2*INT(- 4343 )=0 AND k$=" " THEN z=0:t=x:s=1:EI 2430 IF z=0 AND s=21 AND place(t)=1 THEN para=para+1:place(t)=2:GOTO 2450 2440 IF z=0 AND s=21 AND place(t)=0 THEN DI:LOCATE t,21:PRINT" ":EI:DI:LOCATE t,22:PRINT" ":EI 2450 WEND 2460 a=REMAIN(0) 2470 IF para<6 THEN 2530 2480 SOUND 1,426,30,15:SOUND 1,338,18,15:SOUND 1,253,30,15:SOUND 1,338,18,15:SOUND 1,253,40,15 2490 FOR i=0 TO 1000:NEXT 2500 MODE 0:INK 1,20,6:PEN 1 2510 LOCATE 4,11:PRINT"BONUS REUSSI !" 2520 FOR i=0 TO 2000:NEXT 2530 sc=sc+(para*20) 2540 GOTO 1480 2550 IF chrono=0 THEN SOUND 1,310,200,15,3,4:GOTO 2460 2560 chrono=chrono-1 2570 DI:PEN 2 2580 LOCATE 16,24:PRINT"Temps :";chrono:EI 2590 RETURN 2600 REM ====== REGLES DU JEU ====== 2610 MODE 1:INK 0,0:INK 1,25:INK 2,22:INK 3,15:PAPER 0:BORDER 0:PEN 1 2620 LOCATE 5,10:PRINT"Voulez-vous les regles du jeu ?" 2630 IF INKEY(34)=0 THEN 2660 2640 IF INKEY(46)=0 THEN CLS:RETURN 2650 GOTO 2630 2660 CLS:PEN 2:LOCATE 13,4:PRINT"Regles du jeu :" 2670 PEN 1 2680 LOCATE 4,9:PRINT"Votre but est d'essayer d'atterrir" 2690 LOCATE 4,12:PRINT"avec votre bombardier sur une ville" 2700 LOCATE 2,15:PRINT"Pour cela ,il vous faut d'abord larguer" 2710 LOCATE 3,18:PRINT"des bombes .Si vous reussissez ,vous " 2720 LOCATE 9,21:PRINT"devrez effectuer le " 2730 PEN 2 2740 LOCATE 29,21:PRINT"BONUS" 2750 PEN 1 2760 CALL &BB06:CALL &BB06 2770 CLS 2780 PEN 2 2790 LOCATE 15,4:PRINT"Indications :" 2800 PEN 1 2810 LOCATE 7,9:PRINT"Lorsque vous entendrez ce son " 2820 LOCATE 11,13:PRINT"le record sera battu" 2830 LOCATE 4,17:PRINT"Le largage des bombes se fait avec" 2840 LOCATE 11,20:PRINT"la barre " 2850 PEN 2 2860 LOCATE 21,20:PRINT"< espace >" 2870 FOR i=1 TO 500:NEXT i 2880 SOUND 1,300,300,15,6,8 2890 PEN 1 2900 GOSUB 2020 2910 RETURN |