Screenshot 1
2bc0 4f82 0000 B ... GAMMON
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   18 GOSUB 160
   20 DIM B(27),D(4),DA$(3),DI$(6,3),US(4),P(24),PR(6),M$(5)
   24 BK$=STRING$(10," "):M$(1)="WERFE DURCH "
   26 M$(2)="ZIEHE  VON  ":M$(3)="ZIEHE  VON  "
   28 M$(5)="ZIEHE  VON  ":M$(4)="KANN NICHT SETZEN"
   30 M$(0)="RAUS   VON  ":FR$=" NACH "
   34 AL$="XWVUTSRQPONMLKJIHGFEDCBA"
   36 FOR I=1 TO 12:READ P(I):NEXT I
   38 DATA.31,.33,.39,.42,.42,.47,.17,.17,.14,.08,.06,.08
   40 FOR I=0 TO 6:READ PR(I):NEXT
   42 DATA 0,.03,.11,.25,.44,.69,1
   46 FOR I=1 TO 6:FOR J=1 TO 3:READ DI$(I,J):NEXT J:NEXT I
   48 DATA "","","","","","","","",""
   50 DATA "","","","","","","","",""
   90 GOTO 1000
   96 REM UNTERPROGRAMME ===============UP
  100 RETURN
  126 GOSUB 130:GOTO 124
  129 REM WIE BITTE ? -----------------UP
  130 PRINT INK 2;AT(20,27);"WIE BITTE ?":RETURN
  149 REM J/N ABFRAGE -----------------UP
  150 PRINT INK 4;AT(22,(34-LEN(KY$)));KY$," ? J"
  153 GOSUB 170:PRINT INK 2;AT(22,37);CHR$(T)
  154 IF T=74 OR T=13 THEN T=1:PRINT AT(20,27);STRING$(11," "):RETURN
  156 IF T=78 THEN T=0:PRINT AT(20,27);STRING$(11," "):RETURN
  158 GOSUB 130:PAUSE 10:GOTO 150
  159 REM STANDART-WINDOW -------------UP
  160 WINDOW:CLS:PRINT AT(0,0);" ":RETURN
  169 REM TASTENABFRAGE ---------------UP
  170 T$=INKEY$:IF T$<>CHR$(13)THEN 170:ELSE T=13
  172 RETURN
  200 L$=" ":M$=" ":R$="":LL$=STRING$(14," ")
  202 PRINT AT(2,0);"ABCDEF*GHIJKL":X$="   "
  204 FOR I=3 TO 10:PRINT AT(I,0);L$,X$,X$,X$,M$,X$,X$,X$,R$:NEXT I
  206 FOR I=11 TO 12:PRINT AT(I,0);"",LL$,"",LL$,"":NEXT
  208 X$="   ":FOR I=13 TO 20:PRINT AT(I,0);L$,X$,X$,X$,M$,X$,X$,X$,R$:NEXT I
  210 PRINT AT(21,0);"XWVUTSRQPONM":RETURN
  212 PRINT RIGHT$(" "+STR$(13-I),2)TAB(21)MID$(STR$(I+12),2):RETURN
  214 FOR I=0 TO 25:B(I)=0:NEXT I:B(26)=-15:B(27)=15
  216 B(1)=2:B(6)=-5:B(8)=-3:B(12)=5
  218 B(13)=-5:B(17)=3:B(19)=5:B(24)=-2
  220 FOR I=1 TO 24:N=(B(I)):TM=I:FM=27+(N<0)
  222 B(I)=0:IF N<>0 THEN FOR J=1 TO ABS(N):GOSUB 312:NEXT J
  223 NEXT I
  224 WINDOW 22,31,7,31:CLS:RETURN
  228 FOR L=27 TO 30:PRINT AT(L,20);BK$:NEXT L
  230 RETURN
  232 PRINT AT(28,7);MID$("  IHR     MEIN  ",5+4*NP,8):PRINT AT(30,7);"  WURF  "
  233 PRINT AT(24,7);"              "
  234 FOR K=23 TO 31:PRINT AT(K,0);"    ":NEXT K:LX=23:FOR J=1 TO 2
  235 PRINT AT(LX,2);"":FOR K=1 TO 3:PRINT AT(LX+K,2);DI$(D(J),K):NEXT K:LX=27
  236 NEXT J:RETURN
  238 PP=0:J6=24:IF K<13 THEN J6=K+12
  240 FOR I=K TO J6:IF B(I)<0 THEN PP=PP+P(I-K)
  242 NEXT I:IF K>14 THEN PP=PP+P(25-K)*2
  244 RETURN
  246 MS=3:CS=0
  248 Q4=8*PR(BH)*(1+PR(BH))
  250 Q5=8*PR(BC)*(1+PR(BC))
  252 K=P5:GOSUB 238:CZ=PP*(P5+Q4)*A
  254 K=P5+RL:GOSUB 238:PZ=PP
  256 CW=PZ*(P5+RL+Q4)*A
  258 IF B(P5)=2 THEN CS=CS-CZ
  260 IF B(P5)=1 AND B(K)>0 THEN CS=CS+CZ:MS=5
  262 IF B(K)=-1 THEN CS=CS+25-K+Q5:MS=1:IF K>18 THEN CS=CS-4
  264 IF B(K)<>1 THEN 270
  266 CS=CS+CW:IF B(P5)>2 THEN MS=2
  268 GOTO 276
  270 SM=0:J=20:NN=K+R1:IF NN<20 THEN J=NN
  272 FOR I=K TO J:IF B(I)=-1 THEN SM=SM+P(I-K)*(25-I)
  274 NEXT I:CS=CS-CW+(1-PZ)*SM
  276 RETURN
  278 BS=-999:BM=4:FM=0:TM=0:TR=TR+1
  280 FOR L=24 TO 1 STEP-1:IF B(L)<1 THEN NEXT L:RETURN
  282 RL=D(Y):R=L+RL:IF R>24 THEN NEXT L:RETURN
  284 IF R<F AND B(R)<>-1 THEN NEXT L:RETURN
  286 IF B(R)<-1 THEN NEXT L:RETURN
  288 IF G<>1 THEN 296
  290 Q=0:L1=L+D(1):L2=L+D(2):IF B(L1)>-2 THEN Q=1
  292 IF B(L2)>-2 THEN Q=2
  294 IF Q=0 THEN NEXT L:RETURN
  296 P5=L:GOSUB 246
  298 IF G<>1 THEN 306
  300 MS=3:IF B(L1)=-1 THEN Q=1:CS=CS+25-L1:MS=1
  302 IF B(L2)=-1 THEN Q=2:CS=CS+25-L2:MS=1
  304 K=Q
  306 IF CS<BS THEN NEXT L:RETURN
  308 BS=CS:FM=L:TM=K:BM=MS
  310 NEXT L:RETURN
  312 PT=FM:GOSUB 328:P=SGN(B(FM)):GOSUB 328:B(FM)=B(FM)-P
  314 IF FM=25 OR FM=0 THEN PRINT AT(Z8,S8);"":GOTO 318
  315 D$="":IF(1 AND PT)=1 OR ABS(B(PT))>8 THEN D$=" "
  316 IF FM<26 THEN PRINT AT(Z8,S8);D$
  318 IF B(TM)<>-P THEN 322
  320 PT=-25*(P>0):B(PT)=B(PT)-P:GOSUB 328:P=-P:GOSUB 500:P=-P:B(TM)=0
  322 B(TM)=B(TM)+P:PT=TM:IF TM<26 THEN GOSUB 328:GOSUB 500
  324 S8=MV+2:MV=MV+1
  326 RETURN
  328 IF PT>25 THEN RETURN
  330 IF PT=0 OR PT=25 THEN 340
  332 VT=ABS(B(PT)):IF PT<13 THEN VT=19-VT
  334 TB=ABS(12.5-PT)*2+1:IF TB>12 THEN TB=TB+4
  336 TB=30-TB
  338 GOTO 344
  340 VT=-B(PT):IF VT<0 THEN VT=19+VT
  342 TB=15
  344 Z8=VT+2:S8=TB:RETURN
  346 FOR J=1 TO 50:Z$=INKEY$:IF Z$<>""THEN 354
  348 NEXT J:PRINT AT(24,S8);" "
  350 FOR J=1 TO 50:Z$=INKEY$:IF Z$<>""THEN 354
  352 NEXT J:PRINT AT(24,S8);"  ":GOTO 346
  354 Z=ASC(Z$):ZL=LEN(IN$):IF Z<32 THEN 362
  356 IF Z>90 THEN 346
  358 IF ZL>30 THEN 346
  360 IN$=IN$+Z$:PRINT AT(24,18);IN$:S8=S8+1
  362 IF Z=13 THEN PRINT AT(24,S8);"  ":RETURN
  364 IF Z=8 AND ZL>0 THEN IN$=LEFT$(IN$,ZL-1):PRINT AT(24,S8);" ":S8=S8-1:GOTO 348
  366 IF Z=2 THEN PRINT AT(24,18);STRING$(ZL+1," "):IN$="":S8=18
  368 GOTO 346
  500 IF 2+P=1 THEN PRINT AT(Z8,S8);"":BEEP:RETURN
  502 IF 2+P=2 THEN PRINT AT(Z8,S8);"":RETURN
  504 IF 2+P=3 THEN PRINT AT(Z8,S8);"":BEEP:RETURN
  999 REM HAUPTPROGRAMM ===============HP
 1000 CM=24:F=6:S=0:HM=24:HB=0:CB=0:XC=0:XH=0:TT=.5
 1001 A=TT:IF RND(1)<.5 THEN F=1
 1002 GOSUB 200:GOSUB 214
 1004 D(1)=INT(RND(1)*6+1):D(2)=INT(RND(1)*6+1):IF D(1)=D(2)THEN 1004
 1006 NP=1:GOSUB 234
 1008 IF D(2)>D(1)THEN NP=-1:PRINT AT(24,7);"SIE BEGINNEN"
 1010 IF D(2)<D(1)THEN NP=1:PRINT AT(24,7);"ICH  BEGINNE"
 1014 PAUSE 50:TU=2:GOTO 1022
 1016 TU=2:D(1)=INT(RND(1)*6+1):D(2)=INT(RND(1)*6+1):D(3)=D(1)+D(2)
 1018 IF D(1)=D(2)THEN D(3)=D(1):D(4)=D(1):TU=4
 1022 GOSUB 232:GOSUB 228
 1024 MV=0:Y=0:FOR I=1 TO TU:Y=Y+D(I):US(I)=0:NEXT I:IF NP=1 THEN 1182
 1026 XH=XH+Y:IN$=""
 1028 I=1
 1030 IN$=""
 1032 IF LEN(IN$)>2 THEN IN$=MID$(IN$,2):GOTO 1036
 1034 GOSUB 228:PRINT AT(24,10);"ZUG",I,":":S8=18:SS$=INKEY$:GOSUB 346
 1035 IF IN$=""THEN 1138
 1036 IF LEN(IN$)>1 THEN 1046
 1038 IF IN$>="A"AND IN$<="F"THEN IN$="*"+IN$
 1040 IF IN$>="S"AND IN$<="X"THEN IN$=IN$+"-"
 1042 IF LEN(IN$)>1 THEN 1046
 1044 PRINT AT(23,8);"FALSCHER ZUG":GOTO 1181
 1046 IF LEN(IN$)>3 THEN 1044
 1048 IF MID$(IN$,2,1)=","THEN IN$=LEFT$(IN$,1)+MID$(IN$,3):GOTO 1048
 1050 F$=LEFT$(IN$,1)
 1052 IF F$>="A"AND F$<="X"THEN FM=89-ASC(F$):GOTO 1056
 1054 FM=25:IF F$<>"*"AND F$<>"-"THEN 1044
 1056 T$=MID$(IN$,2,1)
 1058 IF T$="*"OR T$="-"THEN TM=0:GOTO 1064
 1060 IF T$<"A"OR T$>"X"THEN 1044
 1062 TM=89-ASC(T$):N=0:M=FM-TM:K=1:L=0
 1064 IF FM=25 AND B(25)=0 THEN PRINT AT(23,8);"KEIN STEIN AUF BAR":GOTO 1181
 1066 IF FM<TM THEN PRINT AT(23,8);"RICHTUNG FALSCH":GOTO 1181
 1068 IF B(25)<0 AND FM<>25 THEN PRINT AT(23,8);"STEIN EINWERFEN":GOTO 1181
 1070 IF B(FM)>=0 THEN PRINT AT(23,8);"KEIN STEIN AUF ",F$:GOTO 1181
 1072 IF TM=0 THEN 1113
 1074 L=0:FOR J=1 TO TU:IF US(J)THEN K=K+1:GOTO 1080
 1076 L=L+1:N=N+D(J):IF N=M THEN 1082
 1078 IF D(J)=M THEN K=J:L=1:GOTO 1082
 1080 NEXT J:PRINT AT(23,8);M,"GEHT NICHT":GOTO 1181
 1082 IF B(TM)>1 THEN PRINT AT(23,8);"FELD ",T$," BESETZT":GOTO 1181
 1084 IF L=1 THEN GOSUB 312:US(K)=1:GOTO 1178
 1086 IF B(25)<-1 THEN PRINT AT(23,8);"STEIN E EINWERFEN":GOTO 1181
 1088 IF TU=4 THEN 1100
 1090 IF B(FM-D(1))<=1 THEN M=1:GOTO 1096
 1092 IF B(FM-D(2))<=1 THEN M=2:GOTO 1096
 1094 PRINT AT(23,8);"FELD IST BESETZT":GOTO 1181
 1096 N=TM:TM=FM-D(M):GOSUB 312:FM=TM:TM=N:GOSUB 312:I=I+1
 1098 GOTO 1178
 1100 FOR N=1 TO L
 1102 IF B(FM-D(1)*N)>1 THEN 1094
 1104 NEXT N
 1106 FOR N=K TO J
 1108 TM=FM-D(N):US(N)=1:GOSUB 312
 1110 I=I+1:FM=TM:NEXT N
 1112 I=I-1:GOTO 1178
 1113 FOR K=7 TO 24:IF B(K)<0 THEN PRINT AT(23,8);"RAUS IST NOCH VERBOTEN":GOTO 1181
 1114 NEXT K
 1116 TM=26:FOR J=1 TO TU:IF US(J)=0 AND FM=D(J)THEN BEEP:GOSUB 312:US(J)=1:GOTO 1178
 1118 NEXT J
 1120 IF FM=6 THEN 1128
 1122 FOR J=6 TO FM+1 STEP-1
 1124 IF B(J)<0 THEN PRINT AT(23,8);"RAUS VON ",F$," GEHT NICHT":GOTO 1181
 1126 NEXT J
 1128 K=0:D(K)=0:FOR J=1 TO TU:IF US(J)=0 AND D(J)>FM AND D(J)>D(K)THEN K=J
 1130 NEXT J
 1132 IF K=0 THEN PRINT AT(23,8);FM," FELDER GEHT NICHT":GOTO 1181
 1134 PRINT AT(23,8);"ICH VERWENDE WURF",D(K):US(K)=1:PAUSE 10
 1136 BEEP:GOSUB 312:GOTO 1178
 1138 IF B(25)>=0 THEN 1148
 1140 FOR J=1 TO 6
 1142 IF J=D(TU)AND US(TU)=0 AND B(25-J)<2 THEN 1176
 1144 IF J=D(TU-1)AND US(TU-1)=0 AND B(25-J)<2 THEN 1176
 1146 NEXT J:GOTO 1180
 1148 FOR J=24 TO 2 STEP-1
 1150 IF B(J)>=0 THEN 1156
 1152 IF J-D(TU-1)>0 THEN IF US(TU-1)=0 AND B(J-D(TU-1))<2 THEN 1176
 1154 IF J-D(TU)>0 THEN IF US(TU)=0 AND B(J-D(TU))<2 THEN 1176
 1156 NEXT J
 1158 FOR J=24 TO 7 STEP-1:IF B(J)<0 THEN 1180
 1160 NEXT J
 1162 IF US(TU)=0 AND B(D(TU))<0 THEN 1176
 1164 IF US(TU-1)=0 AND B(D(TU-1))<0 THEN 1176
 1166 IF US(TU)THEN D=D(TU-1):GOTO 1170
 1168 D=D(TU):IF US(TU-1)=0 AND D<D(TU-1)THEN D=D(TU-1)
 1170 REM
 1172 FOR J=1 TO D-1:IF B(J)<0 THEN 1176
 1174 NEXT J:GOTO 1180
 1176 PRINT AT(23,8);"ZUG IST MOEGLICH":GOTO 1181
 1178 I=I+1:IF I<=TU THEN 1030
 1180 NP=1:GOTO 1346
 1181 FOR L=1 TO 16:BEEP:PAUSE 2:NEXT L:GOSUB 228:GOTO 1030
 1182 WINDOW 22,27,7,31:CLS:MO=0:B9=0
 1184 XC=XC+Y
 1186 K=0
 1188 K=K+1:IF B(0)=0 OR K>TU THEN 1200
 1190 IF B(D(K))<>-1 THEN 1188
 1192 US(K)=1:MO=MO+1
 1194 FM=0:TM=D(K):GOSUB 312
 1196 PRINT:PRINT "VON BAR UND WERFE DURCH ";MID$(AL$,TM,1);
 1198 GOTO 1188
 1200 K=0
 1202 K=K+1:IF B(0)=0 OR K>TU THEN 1214
 1204 IF B(D(K))<0 OR US(K)>0 THEN 1202
 1206 US(K)=1:MO=MO+1
 1208 FM=0:TM=D(K):GOSUB 312
 1210 PRINT:PRINT "EINWURF AUF ",MID$(AL$,TM,1);
 1212 GOTO 1202
 1214 IF B(0)=0 AND MO<TU THEN 1220
 1216 IF MO<TU THEN PRINT:PRINT "KANN NICHT EINWERFEN";
 1218 GOTO 1336
 1220 IF CM>6 THEN 1258
 1222 FOR J=1 TO TU:L=25-D(J):IF B(L)<1 THEN 1226
 1224 FM=L:TM=27:GOSUB 312:BEEP:PRINT:PRINT M$(0);MID$(AL$,L,1);:MO=MO+1:GOTO 125
 1226 K=6
 1228 Y=25-K:IF B(L-K)<1 OR B(Y)<-1 THEN 1236
 1230 IF B(Y)=-1 THEN B(Y)=0
 1232 FM=L-K:TM=Y:GOSUB 312
 1234 PRINT:PRINT M$(3);MID$(AL$,FM,1);FR$;MID$(AL$,Y,1);:GOTO 1250
 1236 IF K>1 THEN K=K-1:GOTO 1228
 1238 K=1
 1240 IF L+K>24 THEN 1248
 1242 IF B(L+K)<1 THEN 1248
 1244 MO=MO+1:FM=L+K:TM=27:GOSUB 312
 1246 BEEP:PRINT:PRINT M$(0);MID$(AL$,FM,1);" MIT WURF";D(J);:GOTO 1250
 1248 IF K<6 THEN K=K+1:GOTO 1240
 1250 IF B(27)=15 THEN 1346
 1252 IF TU=MO THEN 1336
 1254 NEXT J
 1256 GOTO 1336
 1258 IF TU=MO THEN 1336
 1260 IF TU-MO<2 THEN 1292
 1262 IF HB=0 THEN 1292
 1264 J=I
 1266 IF B(J)<>-1 THEN 1290
 1268 J1=J-D(1):J2=J-D(2):IF J1<1 OR J2<1 THEN 1290
 1270 IF D(1)=D(2)AND B(J1)=1 THEN 1290
 1272 IF B(J1)<1 OR B(J2)<1 THEN 1290
 1274 IF TU=4 THEN 1280
 1276 IF J1>18 AND B(J1)=2 THEN 1290
 1278 IF J2>18 AND B(J2)=2 THEN 1290
 1280 MV=MV-1:TM=J:FM=J1:GOSUB 312:FM=J2:GOSUB 312
 1282 PRINT:PRINT M$(1);MID$(AL$,J1,1);" UND ";
 1284 PRINT MID$(AL$,J2,1);" NACH ";MID$(AL$,J,1);:MO=MO+2:HB=HB-1
 1286 IF TU=4 THEN US(3)=1:US(4)=1
 1288 GOTO 1258
 1290 IF J<24 THEN J=J+1:GOTO 1266
 1292 TR=0:Y=1
 1294 IF US(Y)=1 THEN 1332
 1296 GOSUB 278
 1298 IF Y<>1 OR MO<>0 OR TU=4 OR BM=4 THEN 1310
 1300 S1=BS:F1=FM:M1=BM:Y=2:GOSUB 278
 1302 S2=BS:F2=FM:M2=BM:Y=3:G=1:GOSUB 278
 1304 G=0:IF BS>S1+S2 THEN Y=TM:TM=FM+D(Y):GOTO 1310
 1306 IF S2>S1 THEN FM=F2:Y=2:TM=F2+D(Y):BM=M2:GOTO 1310
 1308 FM=F1:Y=1:TM=F1+D(Y):BM=M1
 1310 IF BM<>4 THEN 1322
 1312 IF F<>1 THEN F=1:GOTO 1296
 1314 IF TR<TU+4 THEN 1332
 1316 FOR J=1 TO 18:IF B(J)>0 OR B9 THEN PRINT:PRINT M$(4);:GOTO 1336
 1318 NEXT J:B9=1:GOTO 1222
 1320 GOTO 1332
 1322 IF BM=1 THEN HB=HB-1
 1324 MO=MO+1:US(Y)=1:IF HM<24-CM THEN BM=3:A=0
 1326 GOSUB 312
 1328 PRINT:PRINT M$(BM);MID$(AL$,FM,1);FR$;MID$(AL$,TM,1);
 1330 IF MO=TU THEN 1336
 1332 Y=Y+1:IF Y>TU THEN Y=1
 1334 GOTO 1294
 1336 X$=INKEY$:NP=-1
 1337 FOR I=1 TO 25:X$=INKEY$:IF X$=CHR$(13)THEN 1342
 1338 NEXT I:PRINT AT(31,7);"BITTE WUERFELN"
 1339 FOR I=1 TO 25:X$=INKEY$:IF X$=CHR$(13)THEN 1342
 1340 NEXT I:PRINT AT(31,7);"              "
 1341 GOTO 1337
 1342 GOSUB 224
 1344 GOTO 1346
 1346 IF B(26)=-15 THEN X$="GEWONNEN MIT":X=CP:GOTO 1380
 1348 IF B(27)=15 THEN X$="VERLOREN MIT":X=HP:GOTO 1380
 1350 HM=0:CM=0:JM=0:HP=0:CP=0:HB=0:CB=0:BC=0:BH=0
 1352 FOR I=0 TO 25
 1354 IF B(I)<0 THEN HP=HP-B(I)*I:HM=I
 1356 IF B(I)>0 THEN CP=CP+B(I)*(25-I):JM=25-I
 1358 IF JM>CM THEN CM=JM
 1360 IF B(I)=-1 THEN HB=HB+1
 1362 IF B(I)=1 THEN CB=CB+1
 1364 IF I<7 AND B(I)<-1 THEN BH=BH+1
 1366 IF I>18 AND B(I)>1 THEN BC=BC+1
 1368 NEXT I
 1370 XX=CP:IF HP<XX THEN XX=HP
 1372 Y=(CP-HP)/XX:IF Y>.2 THEN S=1:F=6:A=.1
 1374 IF Y<.1 THEN S=0:F=1:A=TT
 1376 IF S=1 AND HM<6 THEN F=HM
 1378 GOTO 1016
 1380 GOSUB 228:PRINT AT(21,2);X$,X,"AUGEN DIFFERENZ"
 1382 PRINT AT(22,2);"MEINE AUGEN =",XC,"  IHRE AUGEN =",XH
 1384 PRINT AT(23,2);"NOCH EIN SPIEL? J"
 1386 X$=INKEY$
 1388 X$=INKEY$:IF X$=""THEN 1388
 1390 IF X$="J"OR X$=CHR$(13)THEN 1000
 1392 IF X$="N"THEN 9000
 1394 GOTO 1388
 8999 REM ENDE =====================ENDE
 9000 GOSUB 160:PRINT INK 3;AT(8,2);"AUF WIEDERSEHEN!":PAUSE 50:T$=INKEY$:CLS