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