1 DIM O%(14%),A%(2%,8%),A$(4%),X%(14%),Z%(14%) 2 DIM C%(2%,30%),T%(28%,28%),U%(3%,2%) 3 X1%=30000% : O1%=30001% 4 H1%=14% : H2%=14% : L1%=14% : L2%=14% 5 RANDOMIZE 6 RESTORE 7 FOR I%=1% TO 14% 8 READ Z%(I%) 9 DATA 1,2,4,4,8,16,16,32,64,64,128,256,512,1024 10 NEXT I% 11 FOR I%=1% TO 14% 12 READ X%(I%) 13 DATA 4,8,16,16,32,64,64,128,1000,0,0,-1,-1,-1 14 NEXT I% 15 FOR I%=1% TO 14% 16 READ O%(I%) 17 DATA 8,16,32,32,64,128,128,256,-1,0,-1,-1,-1,-1 18 NEXT I% 19 FOR I%=1% TO 2% 20 FOR J%=1% TO 8% 21 READ A%(I%,J%) 22 DATA 0,1,1,1,0,-1,-1,-1 23 DATA -1,-1,0,1,1,1,0,-1 24 NEXT J% 25 NEXT I% 26 FOR I%=5% TO 24% : FOR J%=5% TO 24% 27 T%(I%,J%)=0% : NEXT J% : NEXT I% 28 ; CHR$(12%); 29 ; "LUFFARSCHACK f|r matris 20 x 20" 30 ; : ; "F|r att markera ett drag skriver du" 31 ; "'rad','kolumn'. Om du vill skriva om" 32 ; "spelplanen skriver du 0,0 i st{llet" 33 ; "ditt drag." 34 ; : ; "Vill du b|rja "; 35 ONERRORGOTO 39 : INPUT A$ 36 PRINT 37 IF A$="JA" OR A$="ja" THEN 42 38 IF A$="NEJ" OR A$="nej" THEN 41 39 ; "Svara bara ja eller nej {r du bussig !" 40 OUT 6,131 : GOTO 34 41 A1%=14% : A2%=14% : S1$="O" : GOSUB 191 : GOTO 135 42 ; : ; "Du f}r automatisk en markering" 43 ; "i position 10,10 s} att vi f}r b{st" 44 ; "plats p} spelplanen." 45 ; : ; "Tryck p} en tangent n{r du {r redo ! "; : GET A$ 46 GOSUB 191 : REM ** RITA SPELPLANEN 47 A1%=14% : A2%=14% : GOTO 59 48 ; CUR(4%,27%);"Ditt drag:";CUR(5%,27%) 49 ; CUR(5%,27%);STRING$(10%,32%);CUR(5%,27%); 50 ONERRORGOTO 48 : INPUT A1%,A2% 51 IF A1%=0% AND A2%=0% THEN GOSUB 191 : GOTO 48 52 ; 53 IF A1%>20% THEN 48 54 IF A2%>20% THEN 48 55 A1%=A1%+4% : A2%=A2%+4% 56 IF T%(A1%,A2%)=0% THEN 59 57 OUT 6%,131% : ; CUR(20%,26%);"UPPTAGET !" 58 GOTO 48 59 T%(A1%,A2%)=X1% 60 ; CUR(20%,26%);STRING$(10%,32%) 61 S1$="X" 62 GOSUB 190 : REM ** MARKERA P] SK[RMEN 63 IF A1%>H1% THEN H1%=A1% 64 IF A1%H2% THEN H2%=A2% 66 IF A2%M% THEN 82 80 R%=R%+1% 81 NEXT L% 82 R%=R%*3% 83 IF T%(I1%-A1%,I2%-A2%)T%(I1%-A1%,I2%-A2%) THEN 87 85 R%=R%+1% 86 R%=R%+1% 87 R%=R%+1% 88 IF L%<5% THEN 93 89 IF R%=7% THEN IF M%=O1% THEN 91 90 IF R%<>8% THEN 93 91 IF U%(1%,1%)=-1% THEN 93 92 GOTO 168 93 IF M%=X1% THEN 96 94 X%=O%(R%) 95 GOTO 97 96 X%=X%(R%) 97 IF X%=0% THEN 111 98 IF L%<5% THEN 101 99 IF X%<0% THEN 147 100 IF L%=5% THEN 102 101 X%=X%/2% 102 K1%=I1% : K2%=I2% 103 FOR L%=1% TO 4% 104 K1%=K1%+A1% : K2%=K2%+A2% 105 IF T%(K1%,K2%)M% THEN 111 107 GOTO 110 108 T%(K1%,K2%)=T%(K1%,K2%)+X% 109 X%=X%-Z%(R%) 110 NEXT L% 111 NEXT J% 112 NEXT I2% 113 NEXT I1% 114 GOSUB 179 115 IF R%=1 THEN 135 116 I%=1% : R%=0% 117 FOR I1%=L1%-2% TO H1%+2% 118 FOR I2%=L2%-2% TO H2%+2% 119 IF T%(I1%,I2%)>=X1% THEN 125 120 IF T%(I1%,I2%)=0% THEN 125 121 IF T%(I1%,I2%)=I% THEN 127 129 A1%=C%(1%,J%) 130 A2%=C%(2%,J%) 131 IF A1%<4% THEN 127 132 IF A1%>28% THEN 127 133 IF A2%<4% THEN 127 134 IF A2%>28% THEN 127 135 I1%=A1%-4% : I2%=A2%-4% : T%(A1%,A2%)=O1% 136 OUT 6,131 : ; CUR(8%,27%);"Mitt drag:";CUR(9%,27%);STRING$(10%,32%) 137 ; CUR(9%,27%);I1%;",";I2% 138 S1$="O" 139 GOSUB 190 140 FOR I1%=5% TO 24% 141 FOR I2%=5% TO 24% 142 IF T%(I1%,I2%)>=X1% THEN 144 143 T%(I1%,I2%)=0% 144 NEXT I2% 145 NEXT I1% 146 GOTO 48 147 IF M%>X1% THEN 155 148 ; 149 OUT 6,131 150 ; CUR(20%,27%);"GRATTIS !" 151 ; CUR(21%,27%);"DU VANN JU !" 152 ; CUR(23%,27%);"MER "; : INPUT A$ 153 IF A$="ja" OR A$="JA" THEN 1 154 STOP 155 K1%=I1%+A%(1%,J%) : K2%=I2%+A%(2%,J%) 156 IF T%(K1%,K2%)=X1% THEN 176 174 U%(K%,1%)=K1% : U%(K%,2%)=K2% : K%=K%+1% 175 IF I%=5% THEN 178 176 K1%=K1%+A%(1%,J%) : K2%=K2%+A%(2%,J%) 177 NEXT I% 178 GOTO 93 179 IF U%(1%,1%)=0% THEN 188 180 IF U%(1%,1%)=-1% THEN 188 181 R%=0% 182 FOR I%=1% TO 3% 183 IF R%>T%(U%(I%,1%),U%(I%,2%)) THEN 185 184 R%=T%(U%(I%,1%),U%(I%,2%)) : A1%=U%(I%,1%) : A2%=U%(I%,2%) 185 NEXT I% 186 R%=1% 187 GOTO 189 188 R%=0% 189 RETURN 190 ; CUR(A1%-3%,A2%-2%);S1$ : RETURN 191 ; CHR$(12);" 11111111111" 192 ; " 12345678901234567890" 193 FOR L1%=5 TO 24 194 IF L1%<14 THEN L3%=1% ELSE L3%=0% 195 ; CUR(L1%-3%,L3%);L1%-4%;CUR(L1%-3%,22%);L1%-4%;CUR(L1%-3%,3%); 196 FOR L2%=5 TO 24 197 IF T%(L1%,L2%)=0 THEN ; CHR$(127); : GOTO 200 198 IF T%(L1%,L2%)=X1% THEN ; "X"; : GOTO 200 199 ; "O"; 200 NEXT L2% 201 NEXT L1% 202 ; CUR(22%,0%);" 12345678911111111112" 203 ; " 01234567890"; 204 RETURN 205 END