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 |