2 REM ****** LA GERRE DE L'ESPACE ******
3 REM **************************************** ****** par Michel DEFERT ****** 4 INK 0,1:INK 1,24 5 CLS:MODE 2:GOSUB 10000 6 INK 0,1:INK 1,24 10 CLS:MODE 1:INK 0,1:INK 1,0:INK 2,19:INK 3,25 20 GOSUB 870 30 a$=CHR$(247):h=0 40 a1=20:b1=9 45 g$=CHR$(249) 50 c1=20:c2=8:b$=CHR$(242):c$=CHR$(243):d$=CHR$(248) 55 d1=(a1*16)-8:d2=392-((b1-1)*16) 60 pir=10:vie=5:g=14 65 e$=CHR$(144):f$=CHR$(250) 67 ENT 1,30,6,1 70 REM ***** dessin du vaisseau ******* *************************************** 80 FOR i=0 TO 639 90 MOVE 0+i,351:DRAW 0+i,399,2 100 NEXT i 110 FOR i=1 TO 321 120 MOVE 159+i,306:DRAW 159+i,351 130 NEXT i 160 FOR i=1 TO 48 170 MOVE 16,351:DRAW 159,306+i,2 180 MOVE 623,351:DRAW 480,306+i 190 NEXT i 191 MOVE 16,350:DRAW 16,367,1 192 MOVE 159,306:DRAW 159,367 193 MOVE 480,306:DRAW 480,367 194 MOVE 623,350:DRAW 623,367 195 MOVE 0,350:DRAW 16,350,1:DRAW 159,306:DRAW 480,306:DRAW 623,350:DRAW 639,350 197 MOVE 0,367:DRAW 639,367 220 FOR i=0 TO 639 230 MOVE 0+i,0:DRAW 0+i,80,2 240 NEXT i 250 FOR i=1 TO 321 260 MOVE 159+i,80:DRAW 159+i,130 270 NEXT i 280 FOR i=1 TO 50 290 MOVE 16,80:DRAW 159,128-i,2 300 MOVE 623,80:DRAW 480,128-i 310 NEXT i 320 FOR i=1 TO 16 330 MOVE 176-i,128:DRAW 192-i,140 340 MOVE 480-i,128:DRAW 464-i,140 350 NEXT i 360 FOR i=1 TO 8:MOVE 175,128-i:DRAW 191,140-i 370 MOVE 464,128-i:DRAW 448,140-i 380 NEXT i 382 MOVE 0,80:DRAW 16,80,1:DRAW 161,130:DRAW 478,130:DRAW 623,80:DRAW 639,80 390 MOVE 159,0:DRAW 159,128,1 410 MOVE 16,0 :DRAW 16,80 420 MOVE 624,0 :DRAW 624,80 440 MOVE 480,0:DRAW 480,128 450 REM ** delimitation des fenetres ** *************************************** 460 WINDOW #1,13,28,5,4:PAPER #1,3:CLS #1 470 WINDOW #2,12,29,19,20:PAPER #2,3:CLS #2 480 WINDOW #3,3,9,23,24:PAPER #3,3:CLS #3 490 WINDOW #4,32,38,23,24:PAPER #4,3:CLS #4 500 REM ***** tableau de bord ********* *************************************** 510 FOR i=12 TO 18 STEP 6 520 PEN 3:LOCATE i,22 530 PRINT CHR$(240) 540 LOCATE i,23 550 PRINT CHR$(246) 560 LOCATE i,24:PRINT CHR$(240) 565 NEXT i 566 FOR i=14 TO 16:LOCATE i,22:PRINT CHR$(240):LOCATE i,23:PRINT CHR$(240):LOCATE i,24:PRINT CHR$(240):NEXT i 575 LOCATE 15,22:PRINT CHR$(246):LOCATE 14,23:PRINT CHR$(246):LOCATE 15,24:PRINT CHR$(240):LOCATE 16,24:PRINT CHR$(246):LOCATE 15,23:PRINT CHR$(240):LOCATE 13,24:PRINT CHR$(246):LOCATE 17,22:PRINT CHR$(246) 577 FOR i=13 TO 17 STEP 4:LOCATE i,22:PRINTCHR$(241):LOCATE i,23:PRINTCHR$(244):LOCATE i,24:PRINTCHR$(245):NEXT i 580 FOR i=23 TO 29 STEP 6 590 LOCATE i,22 600 PRINT CHR$(240) 610 LOCATE i,24 620 PRINT CHR$(240) 630 LOCATE i,23:PRINT CHR$(240) 631 NEXT i:FOR i=24 TO 28 STEP 4 632 LOCATE i,22:PRINTCHR$(241) 633 LOCATE i,23:PRINTCHR$(244) 634 LOCATE i,24:PRINTCHR$(245) 635 NEXT i 636 LOCATE 23,23:PRINTCHR$(246):LOCATE 29,22:PRINTCHR$(246) 640 FOR i=25 TO 27:FOR u=22 TO 24:LOCATE i,u:PRINT CHR$(32):NEXT u:NEXT i 645 PLOT 390,40:DRAW 400,40,3:DRAW 400,50:DRAW 420,50:DRAW 420,30:DRAW 425,30:DRAW 425,40:DRAW 410,40:DRAW 410,20:DRAW 425,20 650 LOCATE #1,6,1:PEN #1,1:PRINT #1,"ENERGIE" 660 LOCATE #1,2,2:PEN #1,1:FOR i=1 TO 14:PRINT#1,CHR$(251);:NEXT i 670 LOCATE #2,1,1:PEN #2,1:PRINT#2,"Ordinateur de bord" 680 LOCATE #2,6,2:PEN #2,1:PRINT#2,"CPC 464" 690 LOCATE #3,1,1:PEN #3,1:PRINT#3,"ENNEMIS" 695 LOCATE #3,2,2:PEN #3,1:PRINT#3,pir 700 LOCATE #4,3,1:PEN #4,1:PRINT #4,"VIE" 710 LOCATE #4,3,2:PEN #4,1:PRINT #4,vie 720 REM ***** trace du radar ********** *************************************** 730 FOR a=1 TO 360 740 DEG:MOVE 320,40 750 PLOT 320+25*COS(a),40+25*SIN(a),0 760 NEXT a 770 x=343:y=40 775 LOCATE #2,1,2:PRINT#2," " 780 LOCATE 5,8:PEN 3:PRINT f$ 782 LOCATE a1,b1:PRINTa$ 785 MOVE 320,40 790 DRAW x,y,2 800 z=z-10 810 x=320+23*COS(z) 820 y=40+23*SIN(z) 830 MOVE 320,40 840 DRAW x,y,1 850 GOTO 1000 860 REM ***** redefinition des caracteres ************************************* *************************************** 870 SYMBOL AFTER 32 880 SYMBOL 240,219,219,219,219,219,219,219,219 890 SYMBOL 241,0,102,102,0,0,102,102 900 SYMBOL 242,129,66,60,231,126,36,195 910 SYMBOL 243,162,66,231,66,60,255,126,195 920 SYMBOL 244,0,24,24,0,0,24,24 930 SYMBOL 245,24,24,0,195,195,0,24,24 940 SYMBOL 246,219,219,129,129,219,219,219,219 950 SYMBOL 247,24,24,24,231,231,24,24,24 960 SYMBOL 248,0,36,60,195,126,129 970 SYMBOL 249,195,195,36,90,126,36,195,195 975 SYMBOL 250,20,64,1,128,1,128,2,40 976 SYMBOL 251,0,255,255,255,255,255,255,0 980 RETURN 990 REM ***** definition des touches * *************************************** 1000 IF INKEY (22)=0 THEN LOCATE a1,b1:PRINT" ":a1=a1+1:LOCATE a1,b1:PRINT a$:d1=(a1*16)-8:d2=392-((b1-1)*16):GOSUB 4000:IF a1>38 THEN a1=38:LOCATE 39,b1:PRINT" " 1010 IF INKEY (71)=0 THEN LOCATE a1,b1:PRINT" ":a1=a1-1:LOCATE a1,b1:PRINT a$:d1=(a1*16)-8:d2=392-((b1-1)*16) :GOSUB 4000:IF a1<2 THEN a1=2:LOCATE 1,b1:PRINT" " 1020 IF INKEY (30)=0 THEN LOCATE a1,b1:PRINT" ":b1=b1-1:LOCATE a1,b1:PRINT a$:d1=(a1*16)-8:d2=392-((b1-1)*16):GOSUB 4000:IF b1<8 THEN b1=8:LOCATE a1,7:PRINT" " 1030 IF INKEY (63)=0 THEN LOCATE a1,b1:PRINT" ":b1=b1+1:LOCATE a1,b1:PRINT a$:d1=(a1*16)-8:d2=392-((b1-1)*16):GOSUB 4000:IF b1>15 THEN b1=15:LOCATE a1,16:PRINT" " 1035 LOCATE 5,8:PEN 3:PRINT e$ 1037 IF a1=5 AND b1=8 AND g<12 THEN GOSUB 5000 1040 IF h=4 THEN h=INT(RND*4) 1050 IF h=1 THEN c2=12:GOTO 1130 1060 IF h=2 THEN c2=14:GOTO 1202 1070 IF h=0 THEN c2=8 :GOTO 1090 1075 IF h=3 THEN c2=10:GOTO 1170 1080 REM **** apparition des pirates de l'espace ***************************** ****************************************************************************** 1090 LOCATE c1,c2:PRINT" ":c1=c1+INT(RND*3):LOCATE c1,c2:PRINT b$:w=w+1:GOSUB 6050:IF c1>35 THEN c1=35:LOCATE 36,c2:PRINT" ":w=0:h=1:c1=20:vie=vie-1:GOSUB 2000 1110 IF a1=c1 AND b1=c2 AND k=0 THEN 1210 1115 IF g=0 THEN 1040 1116 k=1 1120 GOTO 780 1130 LOCATE c1,c2:PRINT" ":c1=c1-INT(RND*2):LOCATE c1,c2:PRINT d$:w=w+1:GOSUB 6050:IF c1<4 THEN c1=4:LOCATE 3,c2:PRINT " ":w=0:h=2:c1=20:vie=vie-1:GOSUB 2000 1150 IF a1=c1 AND b1=c2 AND k=0 THEN 1210 1155 IF g=0 THEN 1040 1156 k=1 1160 GOTO 780 1170 LOCATE c1,c2:PRINT" ":c1=c1+INT(RND*2):LOCATE c1,c2:PRINT c$:w=w+1:GOSUB 6050:IF c1>35 THEN c1=35:LOCATE 36,c2:PRINT" ":w=0:h=0:c1=20:vie=vie-1:GOSUB 2000 1190 IF a1=c1 AND b1=c2 AND k=0 THEN 1210 1195 IF g=0 THEN 1040 1196 k=1 1200 GOTO 780 1202 LOCATE c1,c2:PRINT" ":c1=c1-INT(RND*2):LOCATE c1,c2:PRINTg$:w=w+1:GOSUB 6050:IF c1<4 THEN c1=4:LOCATE 3,c2:PRINT" ":w=0:h=3:c1=20:vie=vie-1:GOSUB 2000 1204 IF a1=c1 AND b1=c2 AND k=0 THEN 1210 1206 IF g=0 THEN 1040 1208 k=1:GOTO 780 1210 LOCATE c1,c2:PRINT" ":pir=pir-1:ENV 1,15,1,1,15,-1,5:SOUND 1,350,0,0,1,0,15:h=4:w=0 1212 LOCATE #3,1,1:PRINT#3,"ENNEMIS" 1214 LOCATE #3,3,2:PRINT#3,pir 1215 GOSUB 6030 1225 IF pir=0 THEN GOTO 1250 1230 FOR i=1 TO 1000:NEXT i 1235 a1=20:b1=9 1240 GOTO 780 1245 REM ***** fin gagne ****************************************************** 1250 CLS:GOSUB 7000:LOCATE 13,4:PRINT"** BRAVO **" 1255 LOCATE 6,6:PRINT"votre mission a reussie les 10" 1260 LOCATE 6,8:PRINT"vaisseaux ennemis sont detruit" 1270 LOCATE 6,10:PRINT"et il vous reste encore";vie;"VIE" 1280 LOCATE 6,12:PRINT"vous rentrez maintenant " 1285 LOCATE 6,14:PRINT"a la base spaciale 'MARAICH'" 1290 LOCATE 6,16:PRINT"pour vous preparer" 1300 LOCATE 6,18:PRINT"a une nouvelle Mission" 1305 FOR i=1 TO 11500:NEXT i 1310 GOTO 3060 1990 REM ***** Fin Perdu ****************************************************** 2000 LOCATE #4,3,1:PEN #4,1:PRINT#4,"VIE" 2004 LOCATE#2,1,1:PRINT#2," " 2005 LOCATE#2,2,1:PEN#2,1:PRINT#2,"Vaisseau Touche" 2006 INK 0,6,3:INK 1,0:INK 2,0:INK 3,19 2008 FOR i=1 TO 1000:NEXT i 2009 INK 0,1:INK 1,0:INK 2,19:INK 3,25 2010 LOCATE #4,3,2:PEN #4,1:PRINT#4,vie 2015 IF vie<=2 THEN GOSUB 6020 2020 IF vie=0 THEN 3000 2030 RETURN 3000 INK 0,3,6:INK 1,26:INK 2,26:INK 3,25 3005 GOSUB 7500 3010 FOR i=1 TO 6000:NEXT i 3020 INK 0,1:INK 1,0:INK 2,19:INK 3,25 3030 CLS:LOCATE 10,9:PRINT"Votre mission a echouee" 3040 LOCATE 10,11:PRINT"vous aurez plus de chance " 3050 LOCATE 10,13:PRINT"une prochaine fois" 3060 LOCATE 2,24:PRINT "Pret pour une nouvelle mission (O/N)" 3070 z$=INKEY$:IF z$="" THEN 3070 3080 IF z$="O" OR z$="o" THEN RUN 10 3090 IF z$="N" OR z$="n" THEN CLS:LOCATE 15,12:PRINT"AU REVOIR":LOCATE 1,1:INK 1,24:END 3100 PRINT CHR$(7);:GOTO 3070 3990 REM ***** definition des laser ******************************************* 4000 IF INKEY (47)=0 THEN 4520 4010 RETURN 4520 ENT 1,30,6,1:SOUND 1,5,19,14,0,1 4525 k=0:MOVE 191,140:DRAW d1,d2,3 4530 MOVE 450,140:DRAW d1,d2 4540 MOVE 191,140:DRAW d1,d2,0 4550 MOVE 450,140:DRAW d1,d2 4560 laz=laz+1 4570 IF laz=3 THEN 4600 4580 RETURN 4590 REM ***** compteur Energie *********************************************** 4600 LOCATE #1,6,1:PEN #1,1:PRINT#1,"ENERGIE":LOCATE #1,g+1,2:PEN #1,1:PRINT #1,CHR$(32):g=g-1:laz=0 4605 IF g<=4 THEN GOSUB 6010 4610 IF g=0 THEN 4630 4620 RETURN 4630 LOCATE #1,5,2:PEN #1,1:PRINT#1,"Energie 0" 4640 GOTO 1040 4990 REM ***** Vaisseau protege *********************************************** 5000 INK 0,1:INK 1,6:INK 2,1:INK 3,25 5003 GOSUB 6000:GOSUB 6040 5004 j=0 5005 ENT 2,5,15,3:SOUND 1,55,19,14,0,2 5010 LOCATE a1,b1:PEN 3:PRINT;a$ 5020 FOR i=1 TO 100:NEXT i 5030 LOCATE 5,8:PEN 3:PRINT;e$ 5040 FOR i=1 TO 100:NEXT i 5050 LOCATE 5,8:PEN 3:PRINT;f$ 5060 j=j+1 5070 LOCATE #1,6,1:PEN #1,1:PRINT#1,"ENERGIE":LOCATE #1,j+1,2:PEN #1,1:PRINT#1,CHR$(251); 5080 FOR i=1 TO 100:NEXT i 5090 IF j=14 THEN g=14:INK 0,1:INK 1,0:INK 2,19:INK 3,25:GOSUB 6060:RETURN 5100 GOTO 5005 5990 REM ***** CPC 464 ******************************************************* 6000 LOCATE #2,1,1:PRINT#2," " 6005 LOCATE #2,6,1:PEN #2,1:PRINT#2,"CPC 464":RETURN 6010 LOCATE #2,1,2:PRINT#2," " 6015 LOCATE #2,1,2:PEN #2,1:PRINT#2,"attention ENERGIE":RETURN 6020 LOCATE #2,1,2:PRINT#2," " 6025 LOCATE #2,3,2:PEN #2,1:PRINT#2,"attention VIE":RETURN 6030 LOCATE #2,1,1:PRINT#2," " 6035 LOCATE #2,3,1:PEN #2,1:PRINT#2,"Ennemi detruit":RETURN 6040 LOCATE #2,1,2:PRINT#2," " 6045 LOCATE #2,2,2:PEN #2,1:PRINT#2,"Vaisseau protege":RETURN 6050 LOCATE #2,1,1:PRINT#2," " 6052 IF w=1 THEN ENV 1,10,-1,2 :SOUND 1,125,0,0,1 6055 LOCATE #2,7,1:PEN #2,1:PRINT#2,"ALERTE" 6057 IF c1=34 OR c1=25 OR c1=20 OR c1=15 OR c1=10 OR c1=5 THEN GOSUB 6500 6058 RETURN 6060 LOCATE #2,1,2:PRINT#2," ":RETURN 6499 '******** Laser des ennemis ********************************************** 6500 d3=(c1*16)-8:d4=395-((c2-1)*16):d5=160+INT(RND*330) 6505 MOVE d3,d4:DRAW d5,145,3 6510 SOUND 1,15,0,0,1,1 6520 MOVE d3,d4:DRAW d5,145,0 6530 RETURN 6999 '********* Sound ********************************************************* 7000 ENV 3,15,1,30,15,-1,30 7010 SOUND 1,50,0,0,3 7020 RETURN 7500 ENV 4,2,-1,1 7510 SOUND 1,450,19,14,4,1,5 7520 ENV 4,5,-1,1 7530 SOUND 1,142,0,0,4,0,10 7540 ENV 4,15,-1,26 7550 SOUND 1,350,0,15,4,0,15 7560 RETURN 9990 REM ***** Menu et secance titre ****************************************** 10000 LOCATE 15,3:PRINT"Pour ce jeu vous devez vous servir des touches" 10020 LOCATE 25,5:PRINT"z: pour aller a gauche" 10030 LOCATE 25,7:PRINT"x: pour descendre" 10040 LOCATE 25,9:PRINT"/: pour monter" 10050 LOCATE 25,11:PRINT"ç: pour aller a droite" 10060 LOCATE 25,13:PRINT"barre d'espace pour tirer" 10070 LOCATE 15,15:PRINT"pour reussir votre mission il vous faudra" 10080 LOCATE 15,16:PRINT"detruire les 10 vaisseaux ennemis" 10090 LOCATE 15,17:PRINT"vous disposez pour cela de:5 vies:2 laser et de 10100 LOCATE 15,18:PRINT"CPC 464 l'ordinateur de bord pour vous aider" 10110 LOCATE 15,19:PRINT"vous avez aussi la possibilitee de 10120 LOCATE 15,20:PRINT"refaire de l'energie au POINT BRILLANT" 10130 LOCATE 30,22:PRINT"BONNE CHANCE" 10180 LOCATE 5,24:PRINT"pressez une touche pour continuer" 10185 LOCATE 5,25:PRINT STRING$(33,154) 10190 z$=INKEY$:IF z$="" THEN ENV 7,10,-2,26:SOUND 1,55,-1,0,7:GOTO 10190 10200 FOR i=0 TO 399 10210 MOVE 0,399-i 10220 DRAW 639,399-i,0 10250 NEXT i 10260 CLS:MODE 1 10265 LOCATE 6,19:PRINT "Michel DEFERT":LOCATE 3,20:PRINT STRING$(36,154):LOCATE 6,21:PRINT"2/86":LOCATE 28,21:PRINT"Presente" 10267 FOR i=1 TO 1500:NEXT i:CLS :MODE 0 10270 LOCATE 10,9:PRINT"LA" 10280 LOCATE 8,11:PRINT"GUERRE" 10290 LOCATE 10,13:PRINT"DE" 10300 LOCATE 7,15:PRINT"L'ESPACE" 10310 FOR i=1 TO 2500:NEXT i 10320 FOR i=1 TO 200 STEP 4 10330 MOVE 320+i,0 10340 DRAW 320+i,399,0 10350 MOVE 320-i,0 10360 DRAW 320-i,399 10370 NEXT i 10380 RETURN |