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