Hebdogiciel n°98 à 99


90 ! NOCTURNES
100 ! PAR  CLAUDE GOURDIN  1985
110 CLS "CYY":CALL COLOR("0bYLH")
120 LOCATE (9,11):PRINT "NNOOCCTTUURRNNEESS"
130 LOCATE (10,11):PRINT "NNOOCCTTUURRNNEESS"
140 CALL COLOR("0CYL"):LOCATE (16,11):PRINT "((CCOOMMBBAATTSS))"
150 !
160 DIM COK$(17),A$(68)
170 TIC$="0D7C8BAABAB602FC"
180 PH$(1)="0E683FC"
190 PH$(2)="7031EF040043CE0010F78C00216B040042C60010F5840031AD0B006FE"
200 PHAS$=PH$(1)&PH$(2)
210 C$(1)="077C312DD46D6F708213EC60072B58C10C66308211F4A0072D6841823E9316EAB63"
220 C$(2)="7BAD18D6E74A2139DE8443BDAD18E7634A319CD6846339AD18C6634A2118D68442D6"
230 C$(3)="518B5AD4A21AD5A84635AA518D4A54A21295A844294AD1FF"
240 CARI$=C$(1)&C$(2)&C$(3)
250 CA$=C$(2)
260 C$(4)="0BA02163031B18008D1E139840073A108100F0901E81080480478F0844200200570C"
270 C$(5)="EBD02110840704E118840043CE0010F78C00316B08052C20010948800214A0000528"
280 EXPL$=C$(4)&C$(5)
290 C$(6)="0398A4AD0165B50D20A7F206E439D180BC263AA0803C2704906BB90418107B39"
300 C$(7)="0718105B190162AB24406C190888B91C0004106B8500624E23409C190888AD1C"
310 C$(8)="013197FF"
320 EXPL2$=C$(6)&C$(7)&C$(8)
330 DATA "984F0A780B0A790009FB0A","87AEDADD62971CBA6A378F7572E8AADDADD6CDA52F75"
340 DATA "A8AADDEDD6E9A50E59B5BBDD3A3B64D5EE7EEBF69055BBFBADB34356ED1EB76E0F51"
350 DATA "B57B5CBB3D44D56E71E5F61055BBE579DA8357EDB6A7ED0E5EB5DB9DB6BBF8C50F56"
360 DATA "55DA9DB63B58D5EE77B2F66207ABDAFD4ED75EECA217BDE8452F7A9105775D3EA768"
370 DATA "3B5CE0AECBEB74AD8735FC"
380 DATA "984F0A780B0A790009FB0A","28B624BCC363A358924EF74C4C5A1A42352B566AAA55"
390 DATA "D76OCB2D8BB182C4AC96C49B2E748D9C126B3A283452497C6A45B7C82D8D5D55D4EC"
400 DATA "B42CE934324B3CCAE9DC8524F6A857C85016C9AD9A21835444B7A84973346E523C6B"
410 DATA "43CDA36E506D65B15A294156C98D631407516757897212F8504DB0CBAE938B9E21E3"
420 DATA "2802C8610C01A5A32170AA5215AA010E9846BA18497064ABE4E6154BEEA3525CE8AC"
430 DATA "4484CB41E054A52A54034A389309B8B90951C1CCB991C8C509B177A563524A1A5565"
440 DATA "8E113855A90AD5000514AB9EA262C8E48C764B8B67B731C62D2B9EC3966597AC78F2"
450 DATA "68419CB2AC296C48AECB82E4B451362A65DACAC694A854096D9950A25229A57542B6"
460 DATA "4899D2F64E452A554ADDD7EDA82C4B515895CD9AE24DA494C2FF03"
470 SP=50860:RESTORE 380:FOR N=1 TO 10:READ L$:GOSUB 4760:NEXT N
480 SC=0:CALL EXEC(50860):CLS "Gbb":CALL COLOR("1GbLF")
490 LOCATE (5,6):PRINT "BBIIEENNVVEENNUUEE  AA  BBOORRDD":PAUSE 2
500 CALL COLOR("0Wb"):LOCATE (10,4):PRINT "VOUS ETES AUX COMMANDES D'UN AVION "
510 PRINT:PRINT "    DE CHASSE...":IF SCO=1 THEN PAUSE .5:GOTO 530
520 SP=50688:RESTORE 330:FOR N=1 TO 6:READ L$:GOSUB 4760:NEXT N
530 CLS "bYY":CALL COLOR("1RYHLF"):LOCATE (2,12):PRINT "CCHHEECCKK--LLIISSTT"
540 LOCATE (3,12):PRINT "CCHHEECCKK--LLIISSTT":CALL COLOR("0bY"):LOCATE (6,15)
550 PRINT "(1=OUI/2=NON)":K$=KEY$:IF K$="1" THEN GOSUB 4800:PAUSE 3
560 SCO=1:GOSUB 5330:GOSUB 4870:PAUSE 2
570 AVI$(1)="0000000107010183FF87"
580 AVI$(2)="00000000C0000082FEC2"
590 BOU$(1)="201C06037B0F01071D21"
600 BOU$(2)="82CCF8C0EFF8C0607806"
610 ST$="01070F1F1D1B0F070000"
620 TR$="C0F0F08060D6FEB0C083"
630 RO$="33350E0F070306041F0F"
640 OU$="FEE78000C0E1272FFEFC"
650 UM$="33350E0F07030E387F3F"
660 MP$="FEE780008080C05EFFFC"
670 PF$="33350E8FC7E7FCE0793C"
680 TR1$="40F0F080E0D6FE80C0C0"
690 MP1$="C0C080008080C05EFFFC"
700 MP2$="80E0F01BBE87C05EFFFC"
710 JE1$="E040404040C0E4FEE4C0"
720 ET1$="40404040E00000000000"
730 JE2$="000000437F4100000300"
740 ET2$="000000E1FFC18080E080"
750 COK$(3)="41FF4949410701010F01"
760 COK$(4)="04FE242404C00000E000"
770 COK$(5)="80808040404040202020"
780 COK$(6)="20101010100808080804"
790 COK$(7)="04040402020202010101"
800 COK$(8)="01010102020202040404"
810 COK$(9)="04080808081010101020"
820 COK$(10)="20202040404040808080"
830 COK$(13)="000102050A152A356AD5"
840 COK$(14)="8040A060B058AC54AA55"
850 COK$(15)="02070503070705060707"
860 COK$(17)="00000101010101010000"
870 CALL CHAR(2,AVI$(2))
880 CALL CHAR(3,AVI$(1))
890 CALL CHAR(7,BOU$(1))
900 CALL CHAR(8,BOU$(2))
910 CALL CHAR(11,ST$)
920 CALL CHAR(12,TR$)
930 CALL CHAR(13,PF$)
940 CALL CHAR(14,MP$)
950 CALL CHAR(15,UM$)
960 CALL CHAR(16,RO$)
970 CALL CHAR(17,OU$)
980 CALL CHAR(18,TR1$)
990 CALL CHAR(19,MP1$)
1000 CALL CHAR(20,MP2$)
1010 CALL CHAR(21,JE1$)
1020 CALL CHAR(22,ET1$)
1030 CALL CHAR(23,JE2$)
1040 CALL CHAR(24,ET2$)
1050 CALL CHAR(63,COK$(3))
1060 CALL CHAR(64,COK$(4))
1070 CALL CHAR(65,COK$(5))
1080 CALL CHAR(66,COK$(6))
1090 CALL CHAR(67,COK$(7))
1100 CALL CHAR(68,COK$(8))
1110 CALL CHAR(69,COK$(9))
1120 CALL CHAR(70,COK$(10))
1130 CALL CHAR(71,COK$(13))
1140 CALL CHAR(72,COK$(14))
1150 CALL CHAR(73,COK$(15))
1160 CALL CHAR(75,COK$(17))
1170 AV$=CHR$(3)&CHR$(2)
1180 BOUM$=CHR$(7)&CHR$(8)
1190 TET$=CHR$(11)&CHR$(12)
1200 PIED1$=CHR$(13)&CHR$(14)
1210 PIED2$=CHR$(15)&CHR$(14)
1220 PIED3$=CHR$(16)&CHR$(17)
1230 TET1$=CHR$(11)&CHR$(18)
1240 PIED22$=CHR$(15)&CHR$(19)
1250 PIED11$=CHR$(13)&CHR$(20)
1260 JET1$=CHR$(21)
1270 JET11$=CHR$(22)
1280 JET2$=CHR$(23)&CHR$(24)
1290 COK$(12)=CHR$(63)&CHR$(64)
1300 !
1310 TE=400
1320 CLS "bBB":R=1:T=1:J=0:CALL COLOR("1bB")
1330 !
1340 FOR LI=1 TO 18 STEP 3:J=J+1:LOCATE (LI,J):PRINT CHR$(65):LOCATE (LI+1,J)
1350 PRINT CHR$(66):LOCATE (LI+2,J):PRINT CHR$(67):NEXT LI:J=41
1360 FOR LI=1 TO 18 STEP 3:J=J-1:LOCATE (LI,J):PRINT CHR$(68):LOCATE (LI+1,J)
1370 PRINT CHR$(69):LOCATE (LI+2,J):PRINT CHR$(70):NEXT LI:J=7:FOR LI=19 TO 22
1380 J=J-1:LOCATE (LI,J):PRINT CHR$(71):NEXT LI:CALL COLOR("0bB"):LI=3
1390 FOR J=22 TO 20 STEP -1:LI=LI+1:LOCATE (J,LI):PRINT CHR$(12)&CHR$(12);
1400 PRINT CHR$(12):NEXT J:FOR LI=19 TO 22:FOR J=7 TO 34:LOCATE (LI,J)
1410 PRINT CHR$(12):NEXT J:NEXT LI:LI=36:FOR J=22 TO 20 STEP -1:LI=LI-1
1420 LOCATE (J,LI):PRINT CHR$(12)&CHR$(12)&CHR$(12):NEXT J:CALL COLOR("1bB")
1430 LOCATE (18,20):PRINT CHR$(73):J=34:FOR LI=19 TO 22:J=J+1
1440 LOCATE (LI,J):PRINT CHR$(72):NEXT LI
1450 !
1460 IF SC<=10 THEN CC(1)=1:CC(2)=2:CC(3)=1:CC(4)=1:CC(5)=2:CC(6)=1
1470 IF SC>=15 AND SC<=25 THEN CC(1)=1:CC(2)=3:CC(3)=1:CC(4)=1:CC(5)=3:CC(6)=1
1480 IF SC>=30 AND SC<=40 THEN CC(1)=1:CC(2)=4:CC(3)=1:CC(4)=1:CC(5)=4:CC(6)=1
1490 IF SC>=45 AND SC<=55 THEN CC(1)=2:CC(2)=2:CC(3)=1:CC(4)=1:CC(5)=3:CC(6)=1
1500 IF SC>=60 AND SC<=70 THEN CC(1)=2:CC(2)=2:CC(3)=1:CC(4)=1:CC(5)=4:CC(6)=1
1510 IF SC>=75 AND SC<=85 THEN CC(1)=2:CC(2)=2:CC(3)=1:CC(4)=2:CC(5)=2:CC(6)=1
1520 IF SC>=90 AND SC<=100 THEN CC(1)=2:CC(2)=2:CC(3)=1:CC(4)=2:CC(5)=3:CC(6)=2
1530 RANDOMIZE:A=6+INTRND(24):RANDOMIZE:B=INTRND(16):C2=A:C3=B:CALL COLOR("0YM")
1540 LOCATE (20,28):PRINT "OPER. ":LOCATE (21,28):PRINT "      ":LOCATE (21,29)
1550 PRINT SC
1560 LOCATE (20,8):PRINT "TEMPS ":LOCATE (21,8):PRINT "      ":LOCATE (21,8)
1570 PRINT TE:CALL COLOR("1CBF")
1580 LOCATE (12,20):PRINT COK$(12)
1590 IF TE=400 THEN 1610
1600 CALL KEY1(D1,D2):IF D1=32 THEN A=C2:B=C3:GOTO 1710
1610 A=A+CC(1)*INT(RND*CC(2))-CC(3):C2=A
1620 B=B+CC(4)*INT(RND*CC(5))-CC(6):C3=B
1630 IF B<0 THEN B=16
1640 IF B>16 THEN B=0
1650 IF A<7 THEN A=32
1660 IF A>32 THEN A=7
1670 LOCATE (T+1,R+1):PRINT "  "
1680 CALL COLOR("1RB"):LOCATE (B+1,A+1):PRINT AV$:R=A:T=B
1690 !
1700 CALL KEY1(D1,D2):IF D1<>32 THEN 1740
1710 CALL SPEECH("L,"&EXPL2$):CALL COLOR("1RB"):FOR LI=17 TO 13 STEP -2
1720 LOCATE (LI,20):PRINT CHR$(75):LOCATE (LI,20):PRINT " ":NEXT LI
1730 IF B=10 AND A=19 THEN GOSUB 1810
1740 IF D1<>255 THEN CALL DIR(D1,19) ELSE D1=D
1750 B=B-2*(D1=128)+2*(D1=130)
1760 A=A-2*(D1=131)+2*(D1=129):D=D1
1770 TE=TE-1:IF TE=0 THEN CALL COLOR("0bY"):CLS "YYY":LOCATE (8,1):GOTO 5160
1780 CALL KEY1(D1,D2):IF D1=32 THEN A=C2:B=C3:GOTO 1710
1790 CALL COLOR("0YM"):GOTO 1560
1800 !
1810 CALL SPEECH("L,"&EXPL$):SC=SC+1:CALL COLOR("1WB")
1820 LOCATE (11,20):PRINT BOUM$:LOCATE (12,20):PRINT "":PAUSE .2:CLS:PAUSE 1
1830 CLS "GWW"
1840 !
1850 CALL COLOR("1GW"):FOR J=1 TO 20 STEP 2:LOCATE (J,21):PRINT JET1$
1860 LOCATE (J+1,21):PRINT JET11$:LOCATE (J,21):PRINT " ":LOCATE (J+1,21)
1870 PRINT " ":NEXT J:CALL SPEECH("A"):CALL SPEECH("L,"&C$(5)):LOCATE (20,21)
1880 PRINT AV$:CALL COLOR("1bW"):FOR K=1 TO 19:LOCATE (19,K):PRINT TET$
1890 LOCATE (20,K):PRINT PIED1$:PAUSE .1:LOCATE (20,K):PRINT PIED2$
1895 LOCATE (20,K)
1900 PRINT PIED3$:LOCATE (19,K):PRINT "  ":LOCATE (20,K):PRINT "  "
1910 CALL SPEECH("L,"&TIC$):NEXT K:LOCATE (19,19):PRINT TET$:CALL SPEECH("A")
1920 LOCATE (20,19):PRINT PIED11$:PAUSE .1:LOCATE (20,21):PRINT "  "
1930 LOCATE (20,19):PRINT PIED3$:LOCATE (19,21):CALL COLOR("1GW"):PRINT AV$
1940 PAUSE .1:CALL COLOR("1bW"):LOCATE (19,21):PRINT "":LOCATE (19,19)
1950 PRINT TET1$:LOCATE (20,19):PRINT PIED22$:CALL COLOR("1GW"):LOCATE (18,20)
1960 PRINT JET1$:LOCATE (18,20):PRINT "  ":CALL EXEC(50688)
1965 FOR L=17 TO 1 STEP -5
1970 LOCATE (L,L):PRINT JET2$:LOCATE (L,L):PRINT "  ":NEXT L:CALL COLOR("1bW")
1980 FOR M=19 TO 39:LOCATE (19,M):PRINT TET$:LOCATE (20,M):PRINT PIED1$:PAUSE .1
1990 LOCATE (20,M):PRINT PIED2$:LOCATE (20,M):PRINT PIED3$:LOCATE (19,M)
2000 PRINT "  ":LOCATE (20,M):PRINT "  ":CALL SPEECH("L,"&TIC$):NEXT M
2010 CALL SPEECH("A")
2020 IF SC=1 THEN GOSUB 2050:GOTO 2090
2030 IF SC=25 OR SC=40 OR SC=55 OR SC=70 OR SC=85 OR SC=100 THEN 2050
2040 GOTO 1320
2050 GOSUB 5350
2060 PRINT "  SUR LA STATION ORBITALE EXL 100...":PAUSE 4
2070 SCO=SCO+1:IF XC>10 THEN 2260 ELSE RETURN
2080 !
2090 CLS "YYY":CALL EXEC(50860):CLS "YBB":CALL COLOR("1YBLF"):LOCATE (4,6)
2100 PRINT "  BBIIEENNVVEENNUUEE  DDAANNSS  LLAA  ":PRINT:PRINT
2110 PRINT "  SSTTAATTIIOONN  OORRBBIITTAALLEE":LOCATE (14,4):CALL COLOR("0RB")
2120 PAUSE 2:PRINT "VOUS DIRIGEZ UN SPOUTNIK GRACE":PRINT:PRINT "A L'ECRAN"
2125 PRINT
2130 PRINT "DE CONTROLE...":PAUSE 6:CLS "BYY":CALL COLOR("1RYHLF"):LOCATE (2,12)
2140 PRINT "CCHHEECCKK--LLIISSTT":LOCATE (3,12):PRINT "CCHHEECCKK--LLIISSTT"
2150 CALL COLOR("0bY"):LOCATE (5,15):PRINT "(1=OUI/2=NON)":K$=KEY$
2160 DIM C1(14)
2170 IF K$="1" THEN GOSUB 4900 ELSE GOTO 2260
2180 LOCATE (8,1):PRINT "CLAVIER":PRINT:PRINT TAB(2);"1 2 3";TAB(20);
2190 PRINT "SI VOUS APPUYEZ":PRINT TAB(2);"4 5 6";TAB(20);"SUR LA TOUCHE"" """
2200 PRINT TAB(2);"7 8 9";TAB(20);" ->DIRECTION : ":PRINT TAB(2);"* 0 #":D1=50
2210 PAUSE 3:CALL DIR(D1,11):LOCATE (10,4):PRINT "2":LOCATE (11,34):PRINT "2"
2220 LOCATE (13,24):PRINT " NORD ":PAUSE 7:LOCATE (10,4):CALL COLOR("0bY")
2230 PRINT "2":D1=53:CALL DIR(D1,11):LOCATE (11,4):CALL COLOR("0Cb"):PRINT "5"
2240 LOCATE (11,34):PRINT "5":LOCATE (13,23):PRINT "STATU-QUO":D1=129:GOSUB 4930
2250 PAUSE:C1(11)=1
2260 CLS "YYY":GOSUB 5330:GOSUB 5100:PAUSE 2
2270 G=6:C1(12)=0
2280 LU$="0000070F3E7870E0F0E0"
2290 UN$="0000E0F0FCCE06030343"
2300 UNE$="F0F0F1797D3D0F070000"
2310 NE$="C7EFFFFEFEFCF0E00000"
2320 SPOU$="0000FF83FF0F13224282"
2330 TNIK$="414244C8F0FFC1FF0000"
2340 ROCK$="834A2A1CFC3F38545291"
2350 CRAC$="895C2A5AFF5A14523990"
2360 CALL CHAR(25,LU$)
2370 CALL CHAR(26,UN$)
2380 CALL CHAR(27,UNE$)
2390 CALL CHAR(28,NE$)
2400 LUN$=CHR$(25)&CHR$(26)
2410 LUNE$=CHR$(27)&CHR$(28)
2420 CALL CHAR(29,SPOU$)
2430 CALL CHAR(30,TNIK$)
2440 SPIK$=CHR$(29)&CHR$(30)
2450 CALL CHAR(31,ROCK$)
2460 CALL CHAR(32,CRAC$)
2470 CALL CHAR(33,"00400000000000000000")
2480 CALL CHAR(34,"00003000000000000000")
2490 CALL CHAR(35,"00000018100000000000")
2500 CALL CHAR(36,"000000000C0C00000000")
2510 CALL CHAR(37,"00000000000707000000")
2520 CALL CHAR(38,"0000000000000E070000")
2530 CALL CHAR(39,"000000000000003C0F00")
2540 CALL CHAR(40,"0000000000000000FC3F")
2550 CALL CHAR(41,"FE1F0000000000000000")
2560 CALL CHAR(42,"00C00000000000000000")
2570 CALL CHAR(43,"00FF1F00000000000000")
2580 CALL CHAR(44,"0000E000000000000000")
2590 CALL CHAR(45,"0000FF0F0F1020000000")
2600 CALL CHAR(46,"40800000F00000000000")
2610 CALL CHAR(47,"0000FFFF070810000000")
2620 CALL CHAR(48,"204080FCFC0000000000")
2630 CALL CHAR(49,"0202FF87FF0709110000")
2640 CALL CHAR(50,"408000FF82FE00000000")

2650 LA$="0D9816C301EDE72CB8B4CBECBD7D88AA6F33A2DD41AAF6BDB46407AFDAE3"
2660 SE$="CEAA1EAA6AB7BE4A7CB86ADC6D37C9E04BE87411B508C044302FE"
2670 LASE$=LA$&SE$
2680 CLS "BbB":C1(1)=0:C1(2)=0:C1(3)=0:C1(4)=0:C1(5)=0:C1(6)=0:C1(7)=0:C1(8)=0
2690 C=0:D=0:CALL COLOR("0Mb")
2700 !
2710 FOR N=1 TO 2:FOR I=1 TO 7:LOCATE (N,I):PRINT CHR$(12):NEXT I:NEXT N
2720 FOR N=3 TO 4:FOR I=1 TO 6:LOCATE (N,I):PRINT CHR$(12):NEXT I:NEXT N
2730 FOR I=1 TO 5:LOCATE (5,I):PRINT CHR$(12):NEXT I
2740 FOR I=1 TO 4:LOCATE (6,I):PRINT CHR$(12):NEXT I
2750 FOR I=1 TO 2:LOCATE (7,I):PRINT CHR$(12):NEXT I:LOCATE (8,1):PRINT CHR$(12)
2760 !
2770 RANDOMIZE:P=3+INTRND(14)
2780 IF SC<=10 THEN 2850
2790 IF SC>=25 AND SC<=30 THEN 2860
2800 IF SC>=40 AND SC<=45 THEN 2870
2810 IF SC>=55 AND SC<=60 THEN 2880
2820 IF SC>=70 AND SC<=75 THEN 2890
2830 IF SC>=85 AND SC<=90 THEN 2900
2840 IF SC>=100 AND SC<=105 THEN 2910
2850 RANDOMIZE:Q=3+INTRND(13):GOTO 2920
2860 RANDOMIZE:Q=3+INTRND(18):GOTO 2920
2870 RANDOMIZE:Q=3+INTRND(23):GOTO 2920
2880 RANDOMIZE:Q=3+INTRND(28):GOTO 2920
2890 RANDOMIZE:Q=3+INTRND(33):GOTO 2920
2900 RANDOMIZE:Q=13+INTRND(23):GOTO 2920
2910 RANDOMIZE:Q=20+INTRND(16):GOTO 2920
2920 IF P<10 THEN Q=10+INTRND(6)
2930 IF C1(11)=1 THEN P=10:Q=6:GOTO 5380
2940 LOCATE (P,Q):CALL COLOR("1Yb"):PRINT LUN$:LOCATE (P+1,Q):PRINT LUNE$
2950 !
2960 CALL COLOR("0WR")
2970 LOCATE (22,29):PRINT "OPER:";SC
2980 X=8:Y=1
2990 !
3000 RANDOMIZE:W=INTRND(20):IF W<8 THEN W=0
3010 RANDOMIZE:IF W=0 THEN Z=8+INTRND(31)
3020 RANDOMIZE:IF W>14 THEN W=20:Z=INTRND(39)
3030 IF W<>0 AND W<>20 THEN Z=39
3040 RANDOMIZE:S=INT(RND*W+10)
3050 S=S-1:C1(12)=C1(12)+1
3060 IF D>0 THEN 3080
3070 PAUSE 2:GOSUB 3930
3080 IF (Y=Q-2 OR Y=Q-1 OR Y=Q)AND (X=P OR X=P-1)THEN GOSUB 3520
3090 !
3100 CALL SPEECH("A"):CALL COLOR("0WR"):LOCATE (22,20):PRINT "H.EN:";G
3110 CALL SPEECH("L,"&TIC$):CALL SPEECH("L,"&TIC$)
3120 CALL COLOR("1Gb"):LOCATE (X+1,Y+1):PRINT SPIK$
3130 CALL SPEECH("A")
3140 !
3150 IF (X+1=P-1)AND (Y+1=Q)THEN C1(1)=1
3160 IF (X+1=P-1)AND (Y+1=Q+1)THEN C1(2)=1
3170 IF (X+1=P)AND (Y+1=Q+2)THEN C1(3)=1
3180 IF (X+1=P+1)AND (Y+1=Q+2)THEN C1(4)=1
3190 IF (X+1=P+2)AND (Y+1=Q+1)THEN C1(5)=1
3200 IF (X+1=P+2)AND (Y+1=Q)THEN C1(6)=1
3210 IF (X+1=P+1)AND (Y+1=Q-2)THEN C1(7)=1
3220 IF (X+1=P)AND (Y+1=Q-2)THEN C1(8)=1
3230 C=C1(1)+C1(2)+C1(3)+C1(4)+C1(5)+C1(6)+C1(7)+C1(8)
3240 IF C<>0 AND X+1=7 AND Y+1=4 THEN GOTO 4100
3250 IF C<>0 AND X+1=8 AND Y+1=4 THEN GOTO 4100
3260 IF C<>0 AND X+1=9 AND Y+1=4 THEN GOTO 4100
3270 IF C<>0 AND X+1=9 AND Y+1=1 THEN GOTO 4100
3280 IF C<>0 AND X+1=10 AND Y+1=2 THEN GOTO 4100
3290 IF C<>0 AND X+1=10 AND Y+1=3 THEN GOTO 4100
3300 IF C1(11)=1 THEN D=1:GOTO 3330
3310 C1(14)=D:IF D=0 THEN K$=KEY$:D=D+1
3320 CALL KEY1(D1,D2)
3330 IF D1<132 THEN GOSUB 3550 ELSE D1=CC(8):GOSUB 3550
3340 IF S<=0 THEN CALL SPEECH("L,"&PHAS$)
3350 IF C1(11)=1 AND C1(12)=6 OR C1(12)=9 OR C1(12)=13 THEN 5400
3360 IF S>0 THEN 3050
3370 !
3380 IF (W=P-1 OR W=P)AND (Z=Q-1 OR Z=Q)THEN GOTO 3490
3390 CALL COLOR("1RbF"):LOCATE (W+1,Z+1):PRINT CHR$(31)
3400 IF W=X AND Z=Y+1 THEN GOTO 3400
3410 IF W+1=X+1 AND Z+1=Y+1 THEN GOTO 4300
3420 IF (Y=Q-2 OR Y=Q-1 OR Y=Q)AND (X=P OR X=P-1)THEN GOSUB 3520
3430 GOTO 3100
3440 !
3450 X=X-3+(INTRND(6)):Y=Y+2+(INTRND(6)):GOSUB 3270:G=C1(13):GOTO 3400
3460 !
3470 X=X-3+(INTRND(6)):Y=Y-2-(INTRND(6)):GOSUB 3720:G=C1(13):GOTO 3400
3480 !
3490 W=W-2+INTRND(4):Z=Z+2-INTRND(4)
3500 GOTO 3380
3510 !
3520 X=X+2:Y=Y+1
3530 RETURN
3540 !
3550 IF D1=53 THEN D=0:CALL DIR(D1,2):CC(8)=D1:GOTO 3310
3560 CALL COLOR("0bb"):LOCATE (X+1,Y+1):PRINT "  ":CALL DIR(D1,2)
3570 IF G=0 THEN 3630
3580 IF D1=35 AND D2<>1 THEN D1=53:CALL DIR(D1,2) ELSE 3600
3590 G=G-1:C1(13)=G:IF C1(14)<>0 THEN 3450 ELSE D=0:GOTO 3450
3600 IF D1=42 AND D2<>1 THEN D1=53:CALL DIR(D1,2) ELSE 3620
3610 G=G-1:C1(13)=G:IF C1(14)<>0 THEN 3470 ELSE D=0:GOTO 3470
3620 IF D1=48 AND S<0 THEN GOSUB 4380 ELSE IF C1(14)=0 THEN CC(8)=53
3630 IF D1=128 OR D1=50 THEN X=X-D:CC(8)=D1
3640 IF D1=79 OR D1=51 THEN X=X-D:Y=Y+D:CC(8)=D1
3650 IF D1=129 OR D1=54 THEN Y=Y+D:CC(8)=D1
3660 IF D1=72 OR D1=57 THEN X=X+D:Y=Y+D:CC(8)=D1
3670 IF D1=130 OR D1=56 THEN X=X+D:CC(8)=D1
3680 IF D1=60 OR D1=55 THEN X=X+D:Y=Y-D:CC(8)=D1
3690 IF D1=131 OR D1=52 THEN Y=Y-D:CC(8)=D1
3700 IF D1=84 OR D1=49 THEN X=X-D:Y=Y-D:CC(8)=D1
3710 IF G=0 THEN 3760
3720 IF X<0 THEN X=20:G=G-1
3730 IF X>20 THEN X=0:G=G-1
3740 IF Y<0 THEN Y=38:G=G-1
3750 IF Y>38 THEN Y=0:G=G-1
3760 IF X>20 THEN X=20
3770 IF X<0 THEN X=0
3780 IF Y>38 THEN Y=38
3790 IF Y<0 THEN Y=0
3800 IF (X=0 OR X=1)AND Y<7 THEN Y=7
3810 IF (X=2 OR X=3)AND Y<6 THEN Y=6
3820 IF X=4 AND Y<5 THEN Y=5
3830 IF X=5 AND Y<4 THEN Y=4
3840 IF X=6 AND Y<2 THEN Y=2
3850 IF X=7 AND Y<1 THEN Y=1
3860 IF S>0 THEN 3910
3870 IF D=0 THEN RETURN
3880 CALL COLOR("0bb"):LOCATE (W+1,Z+1):PRINT " "
3890 W=W-SGN(W-X)
3900 Z=Z-SGN(Z-Y)
3910 RETURN
3920 !
3930 CALL COLOR("1Gb")
3940 LOCATE (X,Y+1):PRINT CHR$(33):PAUSE .4
3950 LOCATE (X,Y+1):PRINT CHR$(34):PAUSE .4
3960 LOCATE (X,Y+1):PRINT CHR$(35):PAUSE .3
3970 LOCATE (X,Y+1):PRINT CHR$(36):PAUSE .3
3980 LOCATE (X,Y+1):PRINT CHR$(37):PAUSE .2
3990 LOCATE (X,Y+1):PRINT CHR$(38):PAUSE .2
4000 LOCATE (X,Y+1):PRINT CHR$(39):PAUSE .2
4010 LOCATE (X,Y+1):PRINT CHR$(40):PAUSE .2
4020 LOCATE (X,Y+1):PRINT " "
4030 LOCATE (X+1,Y+1):PRINT CHR$(41)&CHR$(42):PAUSE .1
4040 LOCATE (X+1,Y+1):PRINT CHR$(43)&CHR$(44):PAUSE .1
4050 LOCATE (X+1,Y+1):PRINT CHR$(45)&CHR$(46):PAUSE .1
4060 LOCATE (X+1,Y+1):PRINT CHR$(47)&CHR$(48):PAUSE .1
4070 LOCATE (X+1,Y+1):PRINT CHR$(49)&CHR$(50)
4080 RETURN
4090 !
4100 IF C<>8 THEN CALL SPEECH("A"):CALL SPEECH("R,"&C$(3)):GOSUB 5290:GOTO 3300
4110 CALL COLOR("0bb"):LOCATE (X+1,Y+1):PRINT "  "
4120 CALL COLOR("1Gb"):LOCATE (9,2):PRINT CHR$(49)&CHR$(50):PAUSE .1
4130 LOCATE (9,2):PRINT CHR$(47)&CHR$(48):PAUSE .1
4140 LOCATE (9,2):PRINT CHR$(45)&CHR$(46):PAUSE .1
4150 LOCATE (9,2):PRINT CHR$(43)&CHR$(44):PAUSE .1
4160 LOCATE (9,2):PRINT CHR$(41)&CHR$(42):PAUSE .1
4170 LOCATE (9,2):PRINT "  "
4180 LOCATE (8,2):PRINT CHR$(40):PAUSE .2
4190 LOCATE (8,2):PRINT CHR$(39):PAUSE .2
4200 LOCATE (8,2):PRINT CHR$(38):PAUSE .2
4210 LOCATE (8,2):PRINT CHR$(37):PAUSE .2
4220 LOCATE (8,2):PRINT CHR$(36):PAUSE .3
4230 LOCATE (8,2):PRINT CHR$(35):PAUSE .3
4240 LOCATE (8,2):PRINT CHR$(34):PAUSE .4
4250 LOCATE (8,2):PRINT CHR$(33):PAUSE .4
4260 LOCATE (8,2):PRINT " ":IF C1(11)<1 THEN SC=SC+1 ELSE C1(11)=0:GOTO 2270
4270 IF SC=15 OR SC=30 OR SC=45 OR SC=60 OR SC=75 OR SC=90 OR SC=105 THEN 4320
4280 GOTO 2680
4290 !
4300 CALL SPEECH("A"):CALL SPEECH("L,"&EXPL$):LOCATE (W+1,Z+1):PRINT BOUM$
4310 PAUSE 1:CLS "YYY":GOTO 5170
4320 IF SC=105 THEN 4330 ELSE CALL SPEECH("L,"&CARI$):GOTO 4340
4330 FOR I=1 TO 3:CALL SPEECH("L,"&CARI$):PAUSE 1:NEXT I
4340 PAUSE 1:CLS "YYY"::GOSUB 5350
4350 PRINT "SUR LA PLANETE TERRE...":PAUSE 4:SCO=SCO+1
4360 IF SC=105 THEN 5190 ELSE GOSUB 5330:GOSUB 4870:PAUSE 2:GOTO 1310
4370 !
4380 CALL DIR(D1,2):LOCATE (W+1,Z+1):PRINT " ":G=G-1
4390 CALL SPEECH("L,"&EXPL$):PAUSE .2:CALL SPEECH("L,"&LASE$)
4400 FOR MI=1 TO 5
4410 CALL COLOR("0M")
4420 IF Y<1 THEN Y=40
4430 IF X-MI=0 OR X-MI=-1 THEN 4650
4440 IF (X-MI=8)AND Y=1 THEN 4650
4450 IF (X-MI=7)AND Y<3 THEN 4650
4460 IF (X-MI=6)AND Y<5 THEN 4650
4470 IF (X-MI=5)AND Y<6 THEN 4650
4480 IF (X-MI=4)AND Y<7 THEN 4650
4490 IF (X-MI=2)AND Y<8 THEN 4650
4500 LOCATE (X-MI,Y)
4510 IF (X-MI=P+1 OR X-MI=P)AND (Y=Q+1 OR Y=Q)THEN 4650
4520 PRINT CHR$(1):PAUSE .2
4530 LOCATE (X-MI,Y)
4540 PRINT " "
4550 W=W-SGN(W-(X-MI))
4560 Z=Z-SGN(Z-Y)
4570 LOCATE (W+1,Z+1):CALL COLOR("1RbF")
4580 IF (W+1=P OR W+1=P+1)AND (Z+1=Q+1 OR Z+1=Q)THEN 4650
4590 PRINT CHR$(31):PAUSE .2
4600 LOCATE (W+1,Z+1):PRINT " "
4610 IF X-MI=W+1 AND Y=Z+1 THEN 4310
4620 NEXT MI
4630 RETURN
4640 !
4650 CALL COLOR("1WbF")
4660 CALL SPEECH("A")
4670 LOCATE (W,Z-1):PRINT BOUM$
4680 CALL SPEECH("L,"&EXPL$):PAUSE .2:CALL SPEECH("L,"&EXPL$)
4690 LOCATE (X+1,Y+1):PRINT BOUM$:CALL SPEECH("L,"&EXPL$)
4700 PAUSE .2:CALL SPEECH("L,"&EXPL$):PAUSE .2:CLS "BYY":GOTO 5170
4720 CLS:CALL COLOR("0GB"):LOCATE (18,5):PRINT "[ESC]=RETOUR AU MENU PRINCIPAL"
4722 PAUSE .5:PRINT:PRINT:PRINT "UNE AUTRE PARTIE ?"
4730 PRINT:PRINT "OUI=5..."
4740 K$=KEY$:CALL KEY1(D1,D2):IF D1=53 THEN SCO=1:GOTO 480 ELSE 4750
4750 CLS "BCC":END
4760 FOR I=1 TO LEN(L$)STEP 2:G=ASC(SEG$(L$,I,1))-48:IF G>9 THEN G=G-7
4770 D=ASC(SEG$(L$,I+1,1))-48:IF D>9 THEN D=D-7
4780 CALL POKE(SP,16*G+D):SP=SP+1:NEXT I:RETURN
4790 !
4800 A$(1)="- MANCHE A BALAI DIRECTIONNEL SEMI-"
4810 A$(2)="AUTOMATIQUE (CONTROLE TABLEAU DE BORD)"
4820 A$(5)="- BOUTON DE TIR : DECLENCHEMENT DE LA "
4830 A$(6)="MITRAILLEUSE"
4840 A$(9)="- 0PERATIONS REALISEES (COMPTEUR)"
4850 A$(12)="- CARBURANT : 400 UNITES (COMPTEUR)"
4860 TX=1:TXT=12:C1(10)=5:GOSUB 5250:RETURN
4870 A$(13)="VOUS DEVEZ ABATTRE UNE ESCADRILLE "
4880 A$(15)="ENNEMIE COMPOSEE DE DIX APPAREILS."
4890 A$(17)=" BONNE CHANCE...":TX=13:TXT=17:C1(10)=12:GOSUB 5250:RETURN
4900 A$(18)="- CLAVIER NUMERIQUE DIRECTIONNEL SEMI"
4910 A$(19)=" -AUTOMATIQUE (VISUALISATION ECRAN)":TX=18:TXT=19:C1(10)=4
4920 GOSUB 5250:RETURN
4930 PAUSE 5:A$(20)="- ATTAQUE : POSSIBLE DANS UN TEMPS"
4940 A$(21)="INDETERMINE PAR MISSILE ENNEMI."
4950 A$(23)="- MOYENS DE DEFENSE : "
4960 A$(24)="  ----------------- : "
4970 A$(25)="  4eme DIMENSION ->  SAUTS BREFS "
4980 A$(26)="Bouton * Saut OUEST/Bouton # Saut EST"
4990 A$(28)="  HYPER-ESPACE  NORD/SUD/EST/OUEST ->"
5000 A$(29)="POUR UNE SORTIE AU NORD DE L'ECRAN DE"
5010 A$(30)="CONTROLE,ENTREE AU SUD DE L'ECRAN."
5020 A$(32)="  TIR OGIVE DELESTAGE ->  DETOURNE "
5030 A$(33)="PASSAGEREMENT LE MISSILE ENNEMI "
5040 A$(34)="(TIR PROHIBE EN DIRECTION :MISSILE,"
5050 A$(35)="PLANETE,SATELLITE,HYPER-ESPACE NORD)."
5060 A$(37)="- ENERGIE :AUCUNE LIMITE DE CARBURANT"
5070 A$(38)="MAIS SIX UNITES D'HYPER-ENERGIE"
5080 A$(39)="(COMPTEUR)/1 MOYEN DE DEFENSE=1 UNITE"
5090 TX=20:TXT=39:C1(10)=16:GOSUB 5250:RETURN
5100 A$(40)=" VOUS DEVEZ REALISER SUCCESSIVEMENT 5"
5110 A$(42)="VOLS SPATIAUX.CHACUN COMPORTE UNE "
5120 A$(44)="MISE EN ORBITE BASSE AUTOUR DU "
5130 A$(46)="SATELLITE.UNE REVOLUTION COMPLETE EST"
5140 A$(48)="NECESSAIRE AVANT LE RETOUR A LA BASE."
5150 A$(51)=" BONNE CHANCE...":TX=40:TXT=51:C1(10)=7:GOSUB 5250:RETURN
5160 PRINT "VOUS ETES TOMBE EN PANNE DE CARBURANT"
5170 A$(52)=" VOTRE MISSION N'A PU ETRE REMPLIE."
5180 A$(55)="VOUS ETES RETROGRADE":TX=52:TXT=55:C1(10)=12:GOSUB 5250:GOTO 4720
5190 CLS:CALL EXEC(50680):A$(56)="FELICITATIONS,VOUS ETES PROMU AU "
5200 A$(59)="RANG DE COMMANDANT."
5210 A$(62)="DE NOUVELLES FONCTIONS EXIGEANT UN "
5220 A$(65)="HAUT NIVEAU DE CAPACITE ET DE "
5230 A$(68)="BRAVOURE VOUS ATTENDENT ...":TX=56:TXT=68:GOSUB 5250:GOTO 4720
5240 !
5250 FOR I=TX TO TXT:C1(10)=C1(10)+1:IF C1(10)>19 THEN PAUSE 4:CLS:C1(10)=3
5260 FOR J=1 TO LEN(A$(I)):CALL COLOR("0CC"):LOCATE (C1(10),J):PRINT " "
5270 CALL COLOR("0bY"):LOCATE (C1(10),J):PRINT SEG$(A$(I),J,1):NEXT J
5280 NEXT I:RETURN
5290 LOCATE (1,10):CALL COLOR("0Wb"):PRINT "0RBITE TROP HAUTE /":PAUSE 1
5300 LOCATE (1,10):PRINT "REVOLUTION INACHEVEE /":PAUSE 1
5310 PAUSE 1:LOCATE (1,10):PRINT "RECOMMENCEZ VOTRE VOL ":PAUSE 2:LOCATE (1,10)
5320 PRINT "  ":CALL SPEECH("A"):RETURN
5330 CLS:LOCATE (3,6):CALL COLOR("1MHI"):PRINT "MISSION  ";SCO
5340 LOCATE (4,6):PRINT "MISSION  ";SCO:RETURN
5350 CALL COLOR("1RWHIF"):LOCATE (6,6):PRINT "MISSION ";SCO;"  REMPLIE "
5360 LOCATE (7,6):PRINT "MISSION ";SCO;"  REMPLIE ":CALL COLOR("0bW")
5370 LOCATE (12,6):PRINT "VOUS RECEVEZ L'ORDRE DE VOUS RENDRE":RETURN
5380 LOCATE (4,13):CALL COLOR("1RBLHF"):PRINT "SSIIMMUULLAATTIIOONN"
5390 LOCATE (5,13):PRINT "SSIIMMUULLAATTIIOONN":GOTO 2940
5400 IF C1(12)=6 THEN D1=130:S=20:GOTO 3360
5410 IF C1(12)=9 THEN D1=131:GOTO 3360
5420 IF C1(12)=13 THEN D1=128:GOTO 3360
5430 IF C1(12)=16 THEN D1=131:GOTO 3360
5440 !
5450 SUB DIR(D1,D3)
5460 IF D1=49 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5470 LOCATE (D3,D3):PRINT CHR$(1):LOCATE (D3,D3+1)
5480 IF D1=128 OR D1=50 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5490 PRINT CHR$(1):IF D1=51 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5500 LOCATE (D3,D3+2):PRINT CHR$(1):LOCATE (D3+1,D3)
5510 IF D1=131 OR D1=52 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5520 PRINT CHR$(1):IF D1=55 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5530 LOCATE (D3+2,D3):PRINT CHR$(1):LOCATE (D3+1,D3+2)
5540 IF D1=129 OR D1=54 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5550 PRINT CHR$(1):IF D1=57 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5560 LOCATE (D3+2,D3+2):PRINT CHR$(1):LOCATE (D3+2,D3+1)
5570 IF D1=130 OR D1=56 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5580 PRINT CHR$(1):IF D1=53 THEN CALL COLOR("1RbF") ELSE CALL COLOR("0Cb")
5590 LOCATE (D3+1,D3+1):PRINT CHR$(1)
5600 SUBEND

Ce listing est uniquement proposé pour un usage privé.
Sans accord écrit préalable, vous n'êtes pas autorisé à le distribuer, le transmettre ou le rediffuser.