10 '---------------------------------
20 '           BOMBARDIER
30 '---------------------------------
40 ENT 1,60,5,0
50 INK 0,14:INK 1,0:INK 2,12
60 PAPER 0:PEN 1
70 WINDOW #1,1,40,1,1
80 MODE 1
90 WINDOW #1,1,40,1,1
100 PAPER #1,2
110 SYMBOL AFTER 242
120 SYMBOL 242,28,159,255,255,255,159,28,0
130 SYMBOL 243,0,0,240,254,240,0,0,0
140 AV$=CHR$(242)+CHR$(243)
150 SYMBOL 244,0,0,60,60,60,52,60,60
160 PO1$=CHR$(244)
170 SYMBOL 245,0,96,96,6,6,96,96,0
180 ET1$=CHR$(245)
190 SYMBOL 246,0,12,12,96,96,12,12,0
200 ET2$=CHR$(246)
210 SYMBOL 247,60,126,255,255,255,255,255
220 SO1$=CHR$(247)
230 SYMBOL 248,24,24,60,60,126,126,255,255
240 SO2$=CHR$(248)
250 SYMBOL 249,24,24,24,24,24,60,126,255
260 SO3$=CHR$(249)
270 SYMBOL 250,36,36,24,24,60,60,24,0
280 BO1$=CHR$(250)
290 SYMBOL 251,60,24,129,219,219,129,24,60
300 EX1$=CHR$(251)
310 SYMBOL 252,124,56,56,254,254,124,124,56
320 CH1$=CHR$(252)
330 SYMBOL 253,56,56,56,16,16,0,0,0
340 CH2$=CHR$(253)
350 DIM BA(2,2),TA(40),DP(40),PO(40),BU(21,40)
360 A=60:B=200:C=10:D=100:E=40:F=200
370 SC=0:FU=650
380 BL$="     "
390 DATA 6,8,14,15,1,0,2,18,19,4,12,9,10,11,17,3,5,16,13,7
400 DATA 26,28,34,35,21,20,22,38,39,24,32,29,30,31,37,23,25,36,33,27
410 RESTORE 390
420 RANDOMIZE TIME
430 ID=INT(RND(1)*8)+1
440 IF ID=9 THEN 420
450 FOR X=1 TO 40
460 READ PO(X):NEXT X
470 LOCATE 5,8:INPUT "Regle du jeu (O/N) ";K$
480 IF K$="n" OR K$="N" THEN 640
490 IF K$<>"o" AND K$<>"O" THEN PRINT CHR$(7);:GOTO 470
500 CLS
510 LOCATE 1,3:PRINT "Ce jeu se joue uniquement avec la"
520 PRINT "touche FLECHEE ";CHR$(241);" pour larguer"
530 PRINT "2 bombes qui equipent votre avion.":PRINT
540 PRINT "Vous ne pouvez avoir en l'air que 2"
550 PRINT "bombes en meme temps.":PRINT
560 PRINT "Quand vous touchez la base d'un"
570 PRINT "batiment, vous obtenez 50 unites"
580 PRINT "de fuel supplementaires."
590 LOCATE 20,18:PRINT "BONNE CHANCE ..."
600 INK 3,0,14:PEN 3
610 LOCATE 5,22:PRINT "Appuyez sur une touche"
620 A$=INKEY$:IF A$="" THEN 620
630 CLS
640 INK 3,5:PEN 1
650 GOSUB 1350
660 GOSUB 1550
670 FOR X=1 TO 21
680 FOR Y=1 TO 40
690 BU(X,Y)=0
700 NEXT Y
710 NEXT X
720 GOSUB 1630
730 GOSUB 1800
740 L=2:C=1:TIR=0
750 GOSUB 2060
760 SOUND 1,1911,20,4
770 C=C+1
780 IF C>40 THEN C=1:L=L+1:IF L>19 THEN 1070
790 IF BU(L,C)<>1 THEN 980
800 '----scratch buildings----
810 FOR I=1 TO 5:SOUND 3,0,5,15:NEXT I
820 PEN 3
830 LOCATE C,L:PRINT EX1$
840 SOUND 1,1911,20,4
850 FOR I=1 TO 5: SOUND 3,0,5,15:NEXT I
860 PEN 1
870 IF C<3 THEN LOCATE 39,L-1:PRINT "  ":GOTO 890
880 LOCATE C-1,L:PRINT " "
890 PRINT CHR$(7);
900 LOCATE 3,3:PRINT "Vous avez percute un batiment"
910 GOSUB 1550:GOTO 1070
920 '----effacer les balles----
930 X=1
940 IF TIR=0 THEN RETURN
950 LOCATE BA(X,2),BA(X,1):PRINT " "
960 X=X+1:TIR=TIR-1
970 GOTO 940
980 '----animation de l'avion----
990 LOCATE C,L:PRINT AV$
1000 IF C=1 THEN LOCATE 39,L-1:PRINT "  ":GOTO 1020
1010 LOCATE C-1,L:PRINT " "
1020 FU=FU-1
1030 GOSUB 2140
1040 GOSUB 1550
1050 IF FU>0 THEN 750
1060 GOTO 1150
1070 '----plus d'avions----
1080 PRINT CHR$(7);
1090 PRINT "LA PARTIE EST TERMINEE,NOTEZ VOTRE"
1100 PRINT "SCORE ET A LA PROCHAINE FOIS..."
1110 FOR A=1 TO 10000:NEXT A
1120 INK 0,1:INK 1,24
1130 PAPER 0:PEN 1
1140 MODE 1:LOCATE 1,1:END
1150 '----plus de fuel----
1160 PRINT CHR$(7);
1170 LOCATE 3,3:PRINT "Plus de fuel"
1180 GOSUB 1550
1190 LOCATE C,L:PRINT "  "
1200 IF L-1<3 THEN 1220
1210 LOCATE C,L-1:PRINT " "
1220 GOSUB 2140: L=L+1
1230 SOUND 1,1911,20,4
1240 IF BU(L,C)<>1 AND L<19 THEN 1320
1250 SOUND 1,1911,20,4
1260 LOCATE C,L-1:PRINT " "
1270 FOR I=1 TO 5:SOUND 3,0,5,15:NEXT I
1280 GOSUB 920
1290 LOCATE C,L:PRINT EX1$
1300 FOR I=1 TO 5:SOUND 3,0,5,15:NEXT I
1310 LOCATE 1,4:GOTO 1070
1320 LOCATE C,L-1:PRINT CH1$
1330 LOCATE C,L:PRINT CH2$
1340 GOTO 1210
1350 '----dessin
1360 CLS
1370 CLS #1
1380 PAPER 2
1390 FOR B=20 TO 25
1400 LOCATE 1,B
1410 FOR A=1 TO 40
1420 PRINT " ";
1430 NEXT A
1440 NEXT B
1450 PAPER 0
1460 LOCATE 1,2
1470 PRINT AV$
1480 LOCATE #1,2,1
1490 PRINT #1,"SCORE:"
1500 LOCATE #1,14,1
1510 PRINT #1,"FUEL:"
1520 LOCATE #1,25,1
1530 PRINT #1,"CIBLES:"
1540 RETURN
1550 '----ecriture du score----
1560 LOCATE #1,8,1:PRINT #1,BL$
1570 LOCATE #1,8,1:PRINT #1,SC
1580 LOCATE #1,19,1:PRINT #1,BL$
1590 LOCATE #1,19,1:PRINT #1,FU
1600 LOCATE #1,32,1:PRINT #1,BL$
1610 LOCATE #1,32,1:PRINT #1,CIBLE
1620 RETURN
1630 '----nombre d'etages et de building :27
1640 CIBLE=0
1650 HMAX=5+NBCOU
1660 IF HMAX>15 THEN HMAX=15
1670 NA=6+NBCOU
1680 IF NA>40 THEN NA=40
1690 IF NBCOU>20 THEN NBCOU=20
1700 FOR I=1 TO NA
1710 RANDOMIZE TIME
1720 TA(I)=INT((HMAX-NBCOU)*RND(1))+NBCOU+4
1730 N=ID+I
1740 IF N>40 THEN N=1
1750 DP(I)=PO(N)
1760 CIBLE=CIBLE+TA(I)
1770 NEXT I
1780 GOSUB 1550
1790 RETURN
1800 '----affichage des buildings--
1810 FOR B=1 TO NA
1820 IF A=0 THEN A=1 ELSE A=0
1830 PAPER 1
1840 IF A=0 THEN PEN 2 ELSE PEN 3
1850 LOCATE 1+DP(B),19
1860 PRINT PO1$
1870 BU(19,1+DP(B))=1
1880 L=18:C=DP(B)+1
1890 PAPER 3:PEN 2
1900 IF A=1 THEN PRINT CHR$(24);
1910 FOR X=2 TO TA(B)-1
1920 RANDOMIZE TIME
1930 AIG=INT(RND(1))+1
1940 LOCATE C,L
1950 IF AIG=1 THEN PRINT ET1$ ELSE PRINT ET2$
1960 BU(L,C)=1:L=L-1:NEXT X
1970 BU(L,C)=1
1980 LOCATE C,L
1990 RANDOMIZE TIME
2000 AIG=INT(RND(1)*3)+1
2010 IF AIG=4 THEN 1990
2020 PAPER 0:PEN 1
2030 IF AIG=3 THEN PRINT SO1$: GOTO 2050
2040 IF AIG=2 THEN PRINT SO2$ ELSE PRINT SO3$
2050 NEXT B: RETURN
2060 '----tir 2--
2070 IF TIR=2 THEN RETURN
2080 IF INKEY(2)=-1 THEN RETURN
2090 X=1:IF TIR=1 THEN X=2
2100 SOUND 2,60,20,1
2110 BA(X,1)=L:BA(X,2)=C:TIR=TIR+1
2120 SOUND 2,60,20,1
2130 RETURN
2140 '----animation des balles
2150 IF TIR=0 THEN 2490
2160 X=1
2170 LOCATE BA(X,2),BA(X,1):PRINT " "
2180 BA(X,1)=BA(X,1)+1
2190 IF BA(X,1)>19 AND BU(BA(X,1),BA(X,2))<>1 THEN 2340
2200 IF BU(BA(X,1),BA(X,2))<>1 THEN 2380
2210 PEN 3
2220 FOR I=1 TO 5:SOUND 3,0,5,15:NEXT I
2230 LOCATE BA(X,2),BA(X,1):PRINT EX1$
2240 PEN 1
2250 BU(BA(X,1),BA(X,2))=0
2260 IF BA(X,1)<>19 THEN 2290
2270 FOR I=1 TO 5:SOUND 3,0,5,15:NEXT I
2280 FU=FU+50
2290 CIBLE=CIBLE-1:SC=SC+1
2300 IF CIBLE>0 THEN 2330
2310 LOCATE BA(2,2),BA(2,1):PRINT " "
2320 GOTO 2420
2330 LOCATE BA(X,2),BA(X,1):PRINT " "
2340 TIR=TIR-1
2350 IF TIR=0 OR X=2 THEN RETURN
2360 BA(1,1)=BA(2,1):BA(1,2)=BA(2,2)
2370 GOTO 2160
2380 LOCATE BA(X,2),BA(X,1):PRINT BO1$
2390 IF TIR=1 THEN RETURN
2400 IF X=2 THEN RETURN
2410 X=2:GOTO 2170
2420 NBCOU=NBCOU+1
2430 FU=650
2440 LOCATE 1,2:PRINT AV$
2450 LOCATE C,L:PRINT "  "
2460 LOCATE C,L-1:PRINT "  "
2470 LOCATE BA(X,2),BA(X,1):PRINT " "
2480 GOTO 660
2490 RETURN