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);"ABCDEF*GHIJKL":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);"XWVUTSRQPONM":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