10 ' ****************************
20 ' *** BOMBARDE *** 30 ' *** PAR IVAN JACOT *** 40 ' **************************** 50 ' * UTILISEZ 'Q' et 'A' POUR * 60 ' * SELECTIONNER LES PARAMETRES * 70 ' * VENT NEGATIF : VENT D'EST * 80 ' * VENT POSITIF : VENT D'OUEST * 90 ' * SI VOUS TOUCHEZ 13 FOIS LE * 100 ' * CHATEAU ENEMI, VOUS GAGNEZ * 110 ' * BONNE CHANCE ! * 120 ' 130 SYMBOL AFTER 200 140 GOSUB 540:GOSUB 840:GOSUB 670:xd=537:RANDOMIZE TIME 150 ' *** Choix des parametres *** 160 PAPER 3:PEN 2:LOCATE 12,2:PRINT tu(1):LOCATE 34,2:PRINT tu(2):GOSUB 1330 170 PAPER 3:PEN 1:GOSUB 650:y=48:a=20:b=10:xv=0:vv=0:yv=0 180 IF xd>320 THEN w=1:xd=(cr1+5)*16:x=xd:loc=2 ELSE loc=23:xd=(cr2-2)*16:x=xd:w=2 190 LOCATE loc,3:PRINT"POUDRE : 10" 200 GOSUB 450 210 IF UPPER$(q$)="Q" THEN GOSUB 480 220 IF UPPER$(q$)="A" THEN GOSUB 490 230 IF q$=CHR$(13) THEN 250 240 LOCATE loc+9,3:PRINT a;" ":GOTO 200 250 GOSUB 650 260 LOCATE loc,3:PRINT "ANGLE : 10" 270 GOSUB 450 280 IF UPPER$(q$)="Q" THEN GOSUB 510 290 IF UPPER$(q$)="A" THEN GOSUB 520 300 IF q$=CHR$(13) THEN 320 310 LOCATE loc+9,3:PRINT b;" ":GOTO 270 320 GOSUB 650:LOCATE 2,3:PRINT "POUDRE :";A;" ANGLE :";b 330 DEG 340 IF xd<200 THEN xv=COS(b)*a/100 ELSE xv=-COS(b)*a/100 350 yv=SIN(b)*a/100:vv=c/10:te=TEST(x,y):SOUND 1,200,3 360 ' 370 ' *** Boucle principale *** 380 ' 390 PLOT x,y,te:xv=xv+(vv-xv)*0.005:x=x+xv:yv=yv-0.05:yv=yv-yv*0.05:y=y+yv:IF x>=640 OR x<=0 OR y>=400 OR y<=31 THEN 160 ELSE te=TEST(x,y):GOSUB 590 400 x2=INT(x/16)+1:y2=INT(25-Y/16)+1:GOSUB 620 410 GOTO 390 420 ' 430 ' *** Test clavier *** 440 ' 450 q$=INKEY$:IF q$="" THEN 450 460 RETURN 470 ' *** S-P Poudre *** 480 IF a=1500 THEN RETURN ELSE a=a+20:RETURN 490 IF a=20 THEN RETURN ELSE a=a-20:RETURN 500 ' *** S-P angle *** 510 IF B=90 THEN RETURN ELSE b=b+2:RETURN 520 IF b=10 THEN RETURN ELSE b=b-2:RETURN 530 ' *** Initialisation *** 540 MODE 1:PAPER 1:CLS:PAPER 3:PEN 2:FOR fu=2 TO 4:LOCATE 2,fu:PRINT SPACE$(38):NEXT:LOCATE 2,2:PRINT "JOUEUR 1 : 0":LOCATE 23,2:PRINT "JOUEUR 2 : 0":c=INT(RND*31)-15:LOCATE 14,4:PRINT "VENT : ";c 550 DIM g(40,25),joueur(2):a=10:b=10 560 BORDER 13:INK 0,0:INK 1,14:INK 2,15:INK 3,3:PEN 1 570 RETURN 580 ' *** Affichage point *** 590 IF te=0 THEN PLOT x,y,1:RETURN 600 PLOT x,y,0:RETURN 610 ' *** Touche ou pas *** 620 IF g(x2,y2)=0 THEN RETURN 630 IF g(x2,y2)=1 THEN PLOT x,y,1:GOTO 160 640 IF g(x2,y2)=2 THEN OUT 255,8:OUT 256,1:PLOT x,y,1:g(x2,y2)=0:tu(w)=tu(w)+1:LOCATE x2,y2:PAPER 1:PEN 0:PRINT " ":OUT 256,2:GOTO 160 650 PAPER 3:PEN 1:LOCATE 2,3:PRINT SPACE$(36):RETURN 660 ' *** S-P affichage decor *** 670 FOR i=1 TO 39 STEP 2:LOCATE i,24:PRINT CHR$(237);CHR$(238);:NEXT:FOR i=1 TO 39 STEP 2:LOCATE i,25:PRINT CHR$(239);CHR$(240);:NEXT 680 PAPER 0:PEN 1:LOCATE 19,18:PRINT CHR$(225);CHR$(226) 690 LOCATE 19,19:PRINT CHR$(227);CHR$(228):g(19,19)=1:g(20,19)=1 700 LOCATE 19,20:PRINT CHR$(229);CHR$(230):g(19,20)=1:g(20,20)=1 710 LOCATE 19,21:PRINT CHR$(231);CHR$(232):g(19,21)=1:g(20,21)=1 720 LOCATE 19,22:PRINT CHR$(233);CHR$(234):g(19,22)=1:g(20,22)=1 730 LOCATE 19,23:PRINT CHR$(235);CHR$(236):g(19,23)=1:g(20,23)=1 740 ec=INT(RND*7)+1:cr1=ec:PAPER 1:PEN 0:LOCATE ec+5,23:PRINT CHR$(241):PEN 1:PAPER 3:GOSUB 760 750 ec=INT(RND*7)+30:cr2=ec:PAPER 1:PEN 0:LOCATE ec-1,23:PRINT CHR$(242):PEN 1:PAPER 3:GOSUB 760:RETURN 760 FOR i=200 TO 204:LOCATE ec+(i-200),19:PRINT CHR$(i):g(ec+(i-200),19)=2:NEXT 770 FOR i=205 TO 209:LOCATE ec+(i-205),20:PRINT CHR$(i):g(ec+(i-205),20)=2:NEXT 780 FOR i=210 TO 214:LOCATE ec+(i-210),21:PRINT CHR$(i):g(ec+(i-210),21)=2:NEXT 790 FOR i=215 TO 219:LOCATE ec+(i-215),22:PRINT CHR$(i):g(ec+(i-215),22)=2:NEXT 800 FOR i=220 TO 224:LOCATE ec+(i-220),23:PRINT CHR$(i):g(ec+(i-220),23)=2:NEXT 810 RETURN 820 ' *** Caracteres redefinis *** 830 ' ********* chateau ********** 840 SYMBOL 200,239,239,199,199,131,1,187,147 850 SYMBOL 201,255,255,196,217,239,243,245,247 860 SYMBOL 202,255,255,71,55,239,95,95,95 870 SYMBOL 203,255,255,255,255,255,255,255,241 880 SYMBOL 204,255,255,255,255,255,255,255,152 890 SYMBOL 205,179,147,179,155,187,155,139,155 900 SYMBOL 206,245,243,241,243,241,243,241,243 910 SYMBOL 207,95,223,223,222,92,88,93,221 920 SYMBOL 208,242,245,250,248,124,60,124,124 930 SYMBOL 209,102,254,169,169,123,215,87,215 940 SYMBOL 210,139,155,139,155,139,27,8,24 950 SYMBOL 236,229,123,27,75,103,55,23,91 960 SYMBOL 211,241,243,241,128,158,130,134,2 970 SYMBOL 212,221,221,221,221,93,157,4,48 980 SYMBOL 213,124,124,124,124,124,120,24,192 990 SYMBOL 214,87,183,119,247,23,187,123,171 1000 SYMBOL 215,8,24,12,4,12,4,12,4 1010 SYMBOL 216,23,43,22,41,85,38,72,36 1020 SYMBOL 217,223,255,63,206,87,54,11,23 1030 SYMBOL 218,249,184,56,184,56,176,48,242 1040 SYMBOL 219,107,171,107,171,91,59,11,189 1050 SYMBOL 220,12,4,12,4,12,4,4,0 1060 SYMBOL 221,88,40,16,40,16,8,0,0 1070 SYMBOL 222,15,11,13,11,13,11,13,0 1080 SYMBOL 223,241,242,241,240,241,240,240,0 1090 SYMBOL 224,93,189,93,189,93,173,85,1 1100 ' ******** remparts ******** 1110 SYMBOL 225,249,240,240,240,248,249,248,248 1120 SYMBOL 226,255,67,155,99,57,29,141,113 1130 SYMBOL 227,240,241,242,240,240,240,226,225 1140 SYMBOL 228,61,27,203,115,123,59,151,103 1150 SYMBOL 229,224,228,227,193,200,196,195,193 1160 SYMBOL 230,119,55,151,231,111,47,143,239 1170 SYMBOL 231,200,196,227,225,224,224,242,240 1180 SYMBOL 232,239,47,151,231,119,55,151,235 1190 SYMBOL 233,240,240,240,249,248,248,248,249 1200 SYMBOL 234,115,27,139,107,241,125,29,13 1210 SYMBOL 235,240,240,242,241,240,240,226,192 1220 SYMBOL 236,229,123,27,75,103,55,23,91 1230 ' ****** Terre ****** 1240 SYMBOL 237,153,103,152,247,79,188,195,255 1250 SYMBOL 238,153,103,152,247,79,188,195,255 1260 SYMBOL 239,153,103,152,247,79,188,195,255 1270 SYMBOL 240,153,103,152,247,79,188,195,255 1280 ' ***** canons ***** 1290 SYMBOL 241,&2,&7,&E,&14,&2C,&5A,&B2,&CC 1300 SYMBOL 242,&40,&E0,&70,&28,&34,&5A,&4D,&33 1310 RETURN 1320 ' *** Gagne ? *** 1330 IF tu(1)=13 THEN LOCATE 6,12:PRINT"LE JOUEUR 1 EST VAINQUEUR !":CALL &BB06:RUN 140 1340 IF tu(2)=13 THEN LOCATE 6,12:PRINT"LE JOUEUR 2 EST VAINQUEUR !":CALL &BB06:RUN 140 1350 RETURN |