Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
10 CLEAR 40
30 DATA "","","","","","","",""
40 DATA "",""
50 DATA "","","","","","","",""
60 FOR Y=1 TO 6:FOR Z=1 TO 3:READ K$(Y,Z):NEXT Z:NEXT Y:GOSUB 130:GOSUB 70:GOTO 610
70 FOR K=1 TO 26 STEP 5:V=V+1:PRINT AT(0,K);"":FOR R=1 TO 3
80 PRINT AT(R,K);K$(V,R):NEXT R:NEXT K
90 FOR Q=0 TO 30:PRINT AT(10,Q);"":PRINT AT(19,Q);"":NEXT Q
100 PRINT AT(13,8);" P U S H "
110 PRINT AT(16,2);"EIN CLEVERES WUERFELSPIEL !"
120 FOR Q=11 TO 18:PRINT AT(Q,0);"":PRINT AT(Q,30);"":NEXT Q:GOSUB 1070:PAUSE 50
130 WINDOW:CLS:PRINT AT(0,0);" ":RETURN
140 L=4*J-3:FOR K=0 TO 3:PRINT AT(L+K,25);" ":NEXT K:PAUSE 1
150 PRINT AT(L,25);"":FOR K=1 TO 3
160 PRINT AT(L+K,25);K$(W(J),K):NEXT K:RETURN
170 WINDOW 23,23,0,31:CLS:INPUT "WELCHE WUERFE BLEIBEN ?";A$
180 FOR L=1 TO 5:K(L)=0:NEXT L
190 IF LEN(A$)=0 OR LEN(A$)>5 THEN 170
200 IF LEFT$(A$,1)="A"AND LEN(A$)<>2 THEN 170
210 IF A$="N"THEN RETURN
220 IF A$="G"THEN K(1)=1:K(2)=1:K(3)=1:K(4)=1:K(5)=1:RETURN
230 IF LEFT$(A$,1)<>"A"THEN K=0:GOTO 270
240 C=INSTR(RIGHT$(A$,1),"123456"):IF C=0 THEN 170
250 FOR K=1 TO 5:IF W(K)=C THEN K(K)=1
260 NEXT K:RETURN
270 K=K+1:C=INSTR(MID$(A$,K,1),"123456"):IF C=0 THEN 170
280 FOR L=1 TO 5:IF K(L)=0 AND W(L)=C THEN K(L)=1:L=6
290 NEXT L:IF L=6 THEN 170
300 IF K=LEN(A$)THEN RETURN:ELSE 270
310 M=0:IF C<7 THEN FOR K=1 TO 5:M=M-C*(W(K)=C):NEXT K:RETURN
320 IF C=16 THEN M=W(1)+W(2)+W(3)+W(4)+W(5):RETURN
330 IF C<>13 AND C<>14 THEN 370
340 FOR K=1-(C=14)TO 5-(C=14):FOR L=1 TO 5:M=M-K*(W(L)=K):NEXT L:NEXT K
350 IF C=13 AND M<>15 THEN M=0:RETURN
360 IF C=14 AND M<>20 THEN M=0:RETURN:ELSE RETURN
370 FOR K=1 TO 6:Z(K)=0:FOR L=1 TO 5:Z(K)=Z(K)-(W(L)=K):NEXT L:NEXT K
380 IF C<>9 AND C<>11 AND C<>12 THEN 410
390 Y=C-8+(C>10):FOR K=6 TO 1 STEP-1:M=M-K*(Y+1)*(Z(K)>Y)
400 K=-K*(Z(K)<=Y)-(Z(K)>Y):NEXT K:RETURN
410 IF C=17 AND(Z(1)=5 OR Z(2)=5 OR Z(3)=5 OR Z(4)=5 OR Z(5)=5 OR Z(6)=5)THEN M=50
420 IF C=17 THEN RETURN
430 FOR K=1 TO 6:M=M-(Z(K)<>2 AND Z(K)<>3 AND Z(K)<>0 AND Z(K)<>5):NEXT K
440 IF C=15 AND M<>0 THEN M=0:RETURN
450 IF M=0 AND C=15 THEN M=W(1)+W(2)+W(3)+W(4)+W(5):RETURN
460 M=0:FOR K=6 TO 1 STEP-1:M=M-2*K*(Z(K)>1):Y=K:K=-K*(Z(K)<2)+1*(Z(K)>1)
470 Z(Y)=Z(Y)+2*(Z(Y)>1):NEXT K:IF M=0 THEN RETURN
480 Y=M:FOR K=6 TO 1 STEP-1:M=M-2*K*(Z(K)>1):NEXT K:IF Y=M THEN M=0
490 RETURN
500 CLS:INPUT "WOHIN EINTRAGEN ?";A$:IF LEN(A$)<>2 THEN 500
510 C=0:FOR K=1 TO 18:IF A$=T$(K)THEN C=K
520 NEXT K:IF C=0 OR C=7 OR C=8 OR C=18 OR F(I,C)<>-1 THEN 500
530 GOSUB 310:F(I,C)=M:GOSUB 580
540 IF C<7 THEN F(I,7)=F(I,7)+M:C=7:M=F(I,7):GOSUB 580
550 IF C=17 AND M=50 THEN:GOSUB 1070
560 IF F(I,7)>=63 AND F(I,8)=-1 THEN C=8:F(I,8)=50:M=50:GOSUB 580:GOSUB 1070
570 RETURN
580 L=C+2-(C>6)-(C>8)-(C>17)
590 IF M<>0 THEN PRINT AT(L,I*5-2);RIGHT$(" "+STR$(M),3):RETURN
600 PRINT AT(L,I*5-1);"":RETURN
610 WINDOW:CLS
620 PRINT AT(9,4);"",STRING$(23,""),""
630 FOR I=10 TO 12:PRINT AT(I,4);"":PRINT AT(I,28);"":NEXT I
640 PRINT AT(13,4);"",STRING$(23,""),""
650 PRINT AT(11,10);"SPIELERANZAHL ?":WINDOW 22,22,12,31
660 INPUT "(1...4)";S
670 IF S<>INT(S)OR S<1 OR S>4 THEN 650
680 DIM F(S,18),T$(18),N$(S),W(5),K(5)
690 PRINT AT(11,9);" SPIELERNAMEN":WINDOW 22,22,10,31:CLS:FOR I=1 TO S
700 PAUSE 5:PRINT "SPIELER";I;:INPUT ":";A$:N$(I)=LEFT$(A$+" ",4):NEXT I
710 FOR J=1 TO 18:READ T$(J):FOR I=1 TO S:F(I,J)=-1:F(I,7)=0:NEXT I:NEXT J
720 DATA "Z1","Z2","Z3","Z4","Z5","Z6","ZS","BO","1P"
730 DATA "2P","3G","4G","KL","GR","KU","CH","PA","GS"
750 WINDOW:CLS:FOR I=0 TO 21:PRINT AT(2,I);"":PRINT AT(9,I);""
760 PRINT AT(12,I);"":NEXT I
770 FOR I=2 TO 22 STEP 5:FOR J=0 TO 21:PRINT AT(J,I);"":NEXT J:NEXT I
780 C=2:FOR I=1 TO 17:C=C+1:PRINT AT(C,0);T$(I)
790 IF I=6 OR I=8 THEN C=C+1
800 NEXT I:FOR I=1 TO S:PRINT AT(0,5*I-2);N$(I):NEXT I
810 FOR R=1 TO 15:FOR I=1 TO S:FOR J=1 TO 22:PRINT AT(J,I*5-3);"*"
820 PRINT AT(J,I*5+2);"*":NEXT J:PRINT AT(1,I*5-2);"****"
830 PRINT AT(22,I*5-2);"****"
840 PRINT AT(0,24);"1.WURF"
850 X=1:FOR J=1 TO 5:W(J)=INT(RND(1)*6+1):K(J)=0:GOSUB 140:NEXT J
860 GOSUB 170
870 IF K(1)+K(2)+K(3)+K(4)+K(5)=5 THEN 940
880 X=2:PRINT AT(0,24);"2":FOR J=1 TO 5
890 IF K(J)=0 THEN W(J)=INT(RND(1)*6+1):GOSUB 140
900 NEXT J:GOSUB 170
910 IF K(1)+K(2)+K(3)+K(4)+K(5)=5 THEN 940
920 PRINT AT(0,24);"3"
930 FOR J=1 TO 5:IF K(J)=0 THEN W(J)=INT(RND(1)*6+1):GOSUB 140
935 NEXT J
940 GOSUB 500:PRINT AT(1,I*5-2);" ":PRINT AT(22,I*5-3);" "
950 FOR J=1 TO 21:PRINT AT(J,I*5-3);"":PRINT AT(J,I*5+2);"":NEXT J
960 NEXT I:NEXT R:WINDOW 0,23,23,29:CLS:WINDOW
970 PRINT AT(23,0);"GS":FOR I=1 TO S:M=0
980 IF F(I,8)=-1 THEN F(I,8)=0:C=8:GOSUB 580
990 FOR J=7 TO 17:M=M+F(I,J):NEXT J:F(I,18)=M:C=18:GOSUB 580:FOR J=1 TO 5
1000 IF M>Z(J)THEN FOR K=5 TO J STEP-1:Z(K+1)=Z(K):NEXT K:Z(J)=M:M=-1:J=7
1010 NEXT J:IF M<>-1 THEN Z(6)=M
1020 NEXT I:FOR I=1 TO S:PRINT AT(1,5*I-2);" ":FOR J=6 TO 2 STEP-1
1030 IF F(I,18)=Z(J)THEN PRINT AT(1,5*I-2);J:PRINT AT(1,5*I);"."
1040 NEXT J:IF F(I,18)=Z(1)THEN PRINT AT(1,5*I-2);"SIEG"
1050 NEXT I:PAUSE 200:WINDOW:CLS:WINDOW 15,15,9,28:INPUT "WEITER (J/N)?";Q$
1060 IF Q$="J"THEN 10 ELSE PRINT:WINDOW:PRINT "AUF WIEDERSEHEN":CLEAR:END
1070 FOR Q=0 TO 20:BEEP:PAUSE 1:NEXT Q:RETURN