Et il y a un autre système de protection, que je n'avais encore jamais vu, avec le fichier STRAT3.DAT
Code : Tout sélectionner
0 Z$="STRATAC-PROG 1-06/10/1983-VERSION DEFINITIVE":A$="H.DIGUET"
1 GOSUB27:CLEAR10,M!-1:DEFINTA-Z:GOTO30
2 IFL=1THENC(C)=65:Q=C
3 I=1:GOSUB29:GOSUB4:FORI=-8TO7:LINE(X,Y+16)-(X+I,Y+7),K:NEXT:BOXF(X-8,Y+4)-(X+7,Y+7),K:BOXF(X-8,Y+11)-(X+7,Y+16),J:LINE(X-6,Y+5)-(X-3,Y+5),-5:LINE(X+3,Y+5)-(X+5,Y+5),-5:LINE(X-2,Y+9)-(X+2,Y+9),-5:LINE(X,Y+6)-(X,Y+8),-5:IFC(C)>0THENPLAY"A0T5L3O4MIDOMI":RETURN:ELSERETURN
4 GOSUB18:FORI=-8TO7:LINE(X,Y)-(X+I,Y+3),J:NEXT:RETURN
5 LINE(X-3,Y+11)-(X+3,Y+16),R:LINE(X-3,Y+16)-(X+3,Y+11),R:RETURN
6 GOSUB7:LINE(X+3,Y+12)-(X+3,Y+16),R:RETURN
7 GOSUB8:LINE(X-3,Y+12)-(X-3,Y+16),R:RETURN
8 LINE(X-7,Y+14)-(X+6,Y+14),R:RETURN
9 GOSUB8:LINE(X+4,Y+12)-(X+6,Y+14),R:LINE-(X+4,Y+16),R:RETURN
10 GOSUB9:BOXF(X+1,Y+12)-(X+4,Y+16),R:RETURN
11 LINE(X-7,Y+15)-(X+1,Y+15),R:LINE-(X-4,Y+12),R:LINE-(X+5,Y+12),R:RETURN
12 LINE(X-7,Y+15)-(X-3,Y+13),R:LINE-(X,Y+13),R:BOXF(X+1,Y+14)-(X+6,Y+12),R:RETURN
13 BOXF(X-5,Y+15)-(X+4,Y+14),R:BOXF(X-5,Y+13)-(X-4,Y+12),R:BOXF(X-1,Y+13)-(X,Y+12),R:BOXF(X+3,Y+13)-(X+4,Y+12),R:RETURN
14 IFW<128OR(WAND64)>0THENONLGOTO5,6,7,9,10,11,12,13:ELSERETURN
15 GOSUB26:INPENX,Y:IFY<0ORY>189ORX<0ORY<0ORX>239THENC=-1:RETURN:ELSEX=X-XMOD24:Y=Y-YMOD19:C=10*Y@19+X@24:X=X+16:Y=Y+2:GOTO19
16 FORI=0TO30:BEEP:NEXT:RETURN
17 GOSUB18:IFW=0THENRETURN:ELSEBOXF(X-8,Y)-(X+7,Y+16),-5:PLAY"T5A30O3L24MIMI":I=-1:GOSUB29:C(C)=0:RETURN
18 IFC>99THENRETURN:ELSEY=19*(C@10)+2:X=24*(CMOD10)+16
19 W=C(C):IFW>0THENL=WAND15
20 RETURN
21 LINE(72,198)-(74,198),0:LINE(8,198)-(13,196):LINE(9,198)-(13,197):BOXF(13,197)-(71,196):LINE(18,198)-(71,198):LINE(18,195)-(67,195):LINE(18,194)-(63,194):LINE(18,193)-(59,193):I=31
22 LOCATE12,24:PRINTSPC27);:LOCATEI+2,24:PRINTCHR$(94);:I=8*I:LINE(I,199)-(I+19,199):RETURN
23 FORL=1TO7:GOSUB24:NEXT
24 R=1:W=88:Y=182:X=W+16*L:GOSUB14:R=-2:RETURN
25 C=100:X=256:Y=24*L-18:GOTO4
26 IFNOTPTRIGTHENX=RND(A):IFP=40THENC=Q:R=-3:GOSUB18:GOSUB5:PLAY"T1O5L2DO":R=-2:GOSUB5:PLAY"DO":GOTO26:ELSE26:ELSERETURN
27 FORM!=65535TO0STEP-8192:I=PEEK(M!)XOR255:POKEM!,I:IFI<>PEEK(M!)THENNEXT:ELSEM!=M!-103:RETURN
28 PLAY"O3L12SIL6SOSOL12FA#SOSIL6SOSOL12FA#SOSISOSISOSISOMISOSISISIO4REL48SO":RETURN
29 GOSUB19:IFW=0THENRETURN:ELSEIFW>128THENE(L)=E(L)+I:RETURN:ELSEA(L)=A(L)+I:RETURN
30 DIMF(8),N(8),A(8),E(8),M(6),C(102):N(1)=1:N(2)=2:N(3)=4:N(4)=6:N(5)=8:N(6)=9:N(7)=6:N(8)=4:F(2)=8:F(3)=6:F(4)=1:F(5)=4:F(6)=2:R=-2:M(0)=-1:M(1)=1:M(2)=8:M(3)=10:M(4)=12:M(5)=19:M(6)=21:CONSOLE0,24,,0:CLS:ATTRB1,1:I=134:J=-1:C=3:SCREEN3,4,4:LOCATE23,7:PRINT"4":LOCATE23,16:PRINT"1":LOCATE26,12,1:PRINT"?";:A$=INKEY$
31 A$=INKEY$:IFA$<>""THENIFASC(A$)=13ORA$>"0"ANDA$<"5"THENM=VAL(A$):GOTO35
32 LINE(217-I,I)-(167,I),C:I=I+J:IFC<>-5THENC=4-C
33 IFI=49THENJ=1:C=-5:ELSEIFI=134THENJ=-1:C=3
34 IFK=0ANDNOTPTRIGTHEN31
35 IFM=5ORM=0THENM=1
36 LOCATE28,12,0:PRINTM:IFPTRIGTHENK=K+1:IFK<9THEN32:ELSEM=M+1:K=1:GOTO32
37 PLAY"T10P":CLS:SCREEN7,4,0:BOXF(0,0)-(3,200),0:FORI=28TO244STEP24:LINE(I,0)-(I,190),0:NEXT:FORI=19TO190STEP19:LINE(4,I)-(244,I),0:NEXT:J=3:K=5:FORC=0TO39:GOSUB18:GOSUB3:NEXT:C=1:ATTRB0,0:FORI=0TO7:LINE(287-I,I)-(286,I),C:C=4-C:NEXT:LOCATE36,0:PRINT"=";:PRINTUSING"#";M:C=100:X=56:GOSUB61:X=152:GOSUB61:X=256:J=2:FORY=6TO174STEP24:L=L+1:GOSUB3:GOSUB14:I=3*L-1:LOCATE33,I:COLOR0,4:PRINTUSING"# #";N(L),N(L):GOSUB62:LOCATE39,I-1:COLOR3,4:PRINTUSING"#";N(L):ATTRB0,1:COLOR1,4:LOCATE35,I:IFL=4THENPRINT"1-";:ATTRB,0:PRINT"8":LOCATE37,I-1:PRINT"6":LOCATE38,I:ATTRB,1:ELSEPRINTUSING" #";F(L);
38 ATTRB0,0:NEXT:PEN0;(244,6)-(267,29),1;(244,30)-(267,53),2;(244,54)-(267,77),3;(244,78)-(267,101),4;(244,102)-(267,125),5;(244,126)-(267,149),6;(244,150)-(267,173),7;(244,174)-(267,195):COLOR7,4:GOSUB21:GOSUB23
39 IFNOTPTRIGTHENLOCATE31,24:PRINTSPC3):PLAY"T2O1L6DO":LOCATE33,24:PRINTCHR$(94);:LINE(248,199)-(267,199):PLAY"PDO":GOTO39
40 GOSUB26:ONPENGOTO46,47,48,49,50,51,52,53
41 GOSUB15:IFC<0THEN40:ELSEIFC<60THENGOSUB16:GOTO40:ELSEIFW=0THEN44:ELSEIFP=40ANDL=1THEN56:ELSEGOSUB17:GOSUB62:P=P-1:IFP=39THENI=31:GOSUB22
42 GOSUB24
43 IFPTRIGTHEN43:ELSE40
44 IFA(A)<>N(A)THENL=A:C(C)=L:GOSUB2:GOSUB14:GOSUB62:P=P+1:IFA(A)=N(A)THENJ=2:GOSUB25:LOCATE10+2*A,24:PRINT" ";:A=0:N=0:IFP=40THENI=17:GOSUB22:L=1:GOTO42
45 GOTO40
46 I=1:GOTO54
47 I=2:GOTO54
48 I=3:GOTO54
49 I=4:GOTO54
50 I=5:GOTO54
51 I=6:GOTO54
52 I=7:GOTO54
53 I=8
54 IFA(I)<>N(I)THENN=A:A=I:L=A:J=0:GOSUB25:J=2:IFN>0ANDN<>ATHENL=N:GOSUB25
55 GOTO43
56 LOCATE12,24:PRINTSPC27);:C(100)=Q:C=9*RND:Q=C:C(101)=Q:C(102)=Q:K=1:GOSUB64:A=7:B=1:R=2:C=Q+9:IFC>9THENGOSUB63:C(101)=C:C=Q-1:IFC=0THENGOSUB66
57 C=Q+11:IFC<20THENGOSUB63:C(102)=C:C=Q+1:IFC=9THENGOSUB66
58 FORI=0TO6:C=M(I)+Q:GOSUB65:NEXT:A=2:B=4:R=3:E(5)=N(5):FORC=30TO39:GOSUB66:NEXT:E(5)=0:FORJ=0TO2:FORI=Q-3TOQ+3:C=10*J+I:GOSUB65:NEXT:NEXT:B=6:FORC=0TO29:GOSUB66:NEXT:C=16:C(42)=C:C(43)=C:C(52)=C:C(53)=C:C(46)=C:C(47)=C:C(56)=C:C(57)=C:I=(M-1)*10:M=0:IFI=0THEN60:ELSEI=I-2*I@10
59 C=60+39*RND:IFC(C)>6THEN59:ELSEC(C)=C(C)OR64:M=M+1:IFM<ITHEN59
60 GOSUB27:FORC=0TO102:POKEM!+C,C(C):NEXT:LOAD"STRAT4",R
61 BOXF(X,91)-(X+39,94),3:BOXF(X,96)-(X+39,99),2:RETURN
62 LOCATE33,3*L-2:COLOR2,4:PRINTUSING"#";A(L):COLOR7,4:RETURN
63 K=RND:K=K+K+2
64 C(C)=K+128:E(K)=E(K)+1:BEEP:RETURN
65 IFABS((C+10)MOD10-Q)>RTHENRETURN
66 IFC(C)>0THENRETURN:ELSEK=A+B*RND:IFE(K)=N(K)THEN66:ELSE64