900 REMARKABLY TRANSLATED TO OS8 BASIC BY KAY R. FISHER ...DEC 1060 DIM A(4,15),T(4,15),F(4,15),S(4,15),L(4,15),K(4,15),H(15,15) 1065 DIM Z$(15) 1070 FOR I=1TO5\B(I)=0\Q(I)=0\A1(I)=0\NEXT I 1120 RANDOMIZE 1130 PRINT "WIE VIELE SPIELER (TYPE: '0' FUER INFORMATION)"; 1140 INPUT P 1150 IF P>15 THEN 1180 1160 IF P<>0 THEN 1240\CHAIN "DSK2:YAHTZE.IN" 1180 GOSUB 5710 1190 GOTO 1130 1240 FOR I=1 TO P 1250 A(1,I)=-5 1260 T(1,I)=-5\T(2,I)=-5\F(1,I)=-5\F(2,I)=-5\S(1,I)=-5 1310 T(3,I)=-5\F(3,I)=-5\F(4,I)=-5\S(2,I)=-5\L(1,I)=-5 1360 Y(I)=-5\C(I)=-5\K(1,I)=0\K1(I)=0\M(I)=0 1410 PRINT "NAME"; 1420 INPUT N$(I) 1470 NEXT I 1480 R=0 1490 R=R+1 1495 IF R>13 THEN 6470 1500 PRINT\PRINT\PRINT "RUNDE";R\PRINT 1540 FOR I=1 TO P 1550 PRINT\PRINT\PRINT N$(I);"'S RUNDE" 1580 FOR L=1TO5\A1(L)=INT(6*RND(0)+1)\NEXT L 1605 GOSUB 1610 1607 GOTO 1700 1610 G=0 1620 FOR X=1 TO 5 1630 IF A1(X)>=A1(X+1) THEN 1680 1640 H=A1(X) 1650 A1(X)=A1(X+1) 1660 A1(X+1)=H 1670 G=1 1680 NEXT X 1685 IF G=1 THEN 1610 1690 RETURN 1700 PRINT "DU HAST EIN";A1(1);A1(2);A1(3);A1(4);A1(5) 1710 PRINT "DIES IST DEINE ZWEITE VON 3 RUNDEN," 1720 PRINT "WIE VIELE MOECHTEST DU WECHSELN"; 1730 INPUT Z 1780 IF Z=0 THEN 2620 1790 IF Z=5 THEN 1890 1792 FOR E=1 TO 5\B(E)=0\NEXT E 1800 FOR S=1 TO Z 1810 PRINT "WELCHE"; 1820 INPUT B(S) 1870 NEXT S 1880 GOTO 1930 1890 FOR S=1 TO 5 1900 A1(S)=INT(6*RND(-1)+1) 1910 NEXT S 1920 GOTO 2050 1930 FOR L=1 TO 5 1940 FOR L1=1 TO 5 1950 IF B(L)=L1 THEN 1970 1960 GOTO 1980 1970 A1(L1)=Q(L1) 1980 NEXT L1 1990 NEXT L 2000 FOR S=1 TO 5 2010 IF A1(S)=0 THEN 2030 2020 GOTO 2040 2030 A1(S)=INT(6*RND(-1)+1) 2040 NEXT S 2050 GOSUB 1610 2140 PRINT "DU HAST EINE";A1(1);A1(2);A1(3);A1(4);A1(5) 2150 PRINT "DIES IST DEINE LETZTE RUNDE," 2160 PRINT "WIE VIELE MOECHTEST DU WECHSELN"; 2170 INPUT Z 2220 IF Z=0 THEN 2620 2230 IF Z=5 THEN 2360 2240 FOR E=1 TO 5 2250 B(E)=0 2260 NEXT E 2270 FOR S=1 TO Z 2280 PRINT "WELCHE"; 2290 INPUT B(S) 2340 NEXT S 2350 GOTO 2400 2360 FOR S=1 TO 5 2370 A1(S)=INT(6*RND(-1)+1) 2380 NEXT S 2390 GOTO 2520 2400 FOR L=1 TO 5 2410 FOR L1=1 TO 5 2420 IF B(L)=L1 THEN 2440 2430 GOTO 2450 2440 A1(L1)=Q(L) 2450 NEXT L1 2460 NEXT L 2470 FOR S=1 TO 5 2480 IF A1(S)=0 THEN 2500 2490 GOTO 2510 2500 A1(S)=INT(6*RND(-1)+1) 2510 NEXT S 2520 GOSUB 1610 2610 PRINT "DU HAST EINE";A1(1);A1(2);A1(3);A1(4);A1(5) 2620 PRINT "WORUNTER MOECHTEST DU DIESE PUNKTE ANSCHREIBEN"; 2630 INPUT Z$ 2650 IF Z$="SUMME" THEN 2670 2660 GOTO 2700 2670 GOSUB 6140 2675 GOTO 2620 2700 IF Z$="EINS" THEN 2850 2710 IF Z$="ZWEI" THEN 2940 2720 IF Z$="DREI" THEN 3030 2730 IF Z$="VIER" THEN 3120 2740 IF Z$="FUENF"THEN 3210 2750 IF Z$="SECHS" THEN 3300 2760 IF Z$="DREI GLEICHE" THEN 3390 2770 IF Z$="VIER GLEICHE" THEN 3440 2780 IF Z$="VOLLES HAUS" THEN 3520 2790 IF Z$="KLEINE STRASSE" THEN 3620 2800 IF Z$="GROSSE STRASSE" THEN 3660 2810 IF Z$="YAHTZEE" THEN 3730 2820 IF Z$="CHANCE" THEN 3820 2830 IF Z$="NULL" THEN 3890 2840 GOTO 2620 2850 IF A(1,I)<>-5 THEN 3870 2860 A(1,I)=0 2870 FOR S=1 TO 5 2880 IF A1(S)=1 THEN 2900 2890 GOTO 2910 2900 A(1,I)=A(1,I)+1 2910 NEXT S 2920 M(I)=A(1,I) 2930 GOTO 4690 2940 IF T(1,I)<>-5 THEN 3870 2950 T(1,I)=0 2960 FOR S=1 TO 5 2970 IF A1(S)=2 THEN 2990 2980 GOTO 3000 2990 T(1,I)=T(1,I)+2 3000 NEXT S 3010 M(I)=T(1,I) 3020 GOTO 4690 3030 IF T(2,I)<>-5 THEN 3870 3040 T(2,I)=0 3050 FOR S=1 TO 5 3060 IF A1(S)=3 THEN 3080 3070 GOTO 3090 3080 T(2,I)=T(2,I)+3 3090 NEXT S 3100 M(I)=T(2,I) 3110 GOTO 4690 3120 IF F(1,I)<>-5 THEN 3870 3130 F(1,I)=0 3140 FOR S=1 TO 5 3150 IF A1(S)=4 THEN 3170 3160 GOTO 3180 3170 F(1,I)=F(1,I)+4 3180 NEXT S 3185 M(I)=F(1,I) 3190 GOTO 4690 3210 IF F(2,I)<>-5 THEN 3870 3220 F(2,I)=0 3230 FOR S=1 TO 5 3240 IF A1(S)=5 THEN 3260 3250 GOTO 3270 3260 F(2,I)=F(2,I)+5 3270 NEXT S 3280 M(I)=F(2,I) 3290 GOTO 4690 3300 IF S(1,I)<>-5 THEN 3870 3310 S(1,I)=0 3320 FOR S=1 TO 5 3330 IF A1(S)=6 THEN 3350 3340 GOTO 3360 3350 S(1,I)=S(1,I)+6 3360 NEXT S 3370 M(I)=S(1,I) 3380 GOTO 4690 3390 IF T(3,I)<>-5 THEN 3870 3400 T(3,I)=0 3410 T(3,I)=A1(1)+A1(2)+A1(3)+A1(4)+A1(5) 3420 M(I)=T(3,I) 3430 GOTO 4690 3440 IF F(3,I)<>-5 THEN 3870 3450 IF A1(1)<>A1(4) THEN 4960 3460 IF A1(2)<>A1(3) THEN 4960 3470 F(3,I)=0 3480 F(3,I)=A1(1)+A1(2)+A1(3)+A1(4)+A1(5) 3490 M(I)=F(3,I) 3500 F(3,I)=0 3510 GOTO 4690 3520 IF F(4,I)<>-5 THEN 3870 3530 IF A1(1)<>A1(2) THEN 4960 3540 IF A1(4)<>A1(5) THEN 4960 3550 IF A1(3)<>A1(2) THEN 3570 3560 GOTO 3590 3570 IF A1(3)<>A1(4) THEN 4960 3590 F(4,I)=25 3600 M(I)=F(4,I) 3610 GOTO 4690 3620 IF S(2,I)<>-5 THEN 3870 3630 S(2,I)=30 3640 M(I)=S(2,I) 3650 GOTO 4690 3660 IF L(1,I)<>-5 THEN 3870 3670 IF A1(1)<>A1(5)+4 THEN 4960 3680 IF A1(2)<>A1(4)+2 THEN 4960 3690 IF A1(3)<>A1(5)+2 THEN 4960 3700 L(1,I)=40 3710 M(I)=L(1,I) 3720 GOTO 4690 3730 IF Y(I)<>-5 THEN 3870 3740 FOR O=1 TO 5 3750 FOR O1=1 TO 5 3760 IF A1(O)<>A1(O1) THEN 4960 3770 NEXT O1 3780 NEXT O 3790 Y(I)=50 3800 M(I)=Y(I) 3810 GOTO 4690 3820 IF C(I)<>-5 THEN 3870 3830 C(I)=A1(1)+A1(2)+A1(3)+A1(4)+A1(5) 3850 M(I)=C(I) 3860 GOTO 4690 3870 GOSUB 4650 3880 GOTO 2620 3890 PRINT "WORIN MOECHTEST DU NULL EINSCHREIBEN"; 3900 INPUT Z$ 3920 IF Z$="SUMME" THEN 3940 3930 GOTO 3970 3940 GOSUB 6140 3945 GOTO 2620 3970 IF Z$="EINS" THEN 4110 3980 IF Z$="ZWEI" THEN 4150 3990 IF Z$="DREI" THEN 4190 4000 IF Z$="VIER" THEN 4230 4010 IF Z$="FUENF" THEN 4270 4020 IF Z$="SECHS" THEN 4310 4030 IF Z$="DREI GLEICHE" THEN 4350 4040 IF Z$="VIER GLEICHE" THEN 4390 4050 IF Z$="VOLLES HAUS" THEN 4430 4060 IF Z$="KLEINE STRASSE" THEN 4470 4070 IF Z$="GROSSE STRASSE" THEN 4510 4080 IF Z$="YAHTZEE" THEN 4550 4090 IF Z$="CHANCE" THEN 4590 4100 GOTO 3890 4110 IF A(1,I)<>-5THEN 4630 4120 A(1,I)=0 4130 M(I)=A(1,I) 4140 GOTO 4690 4150 IF T(1,I)<>-5 THEN 4630 4160 T(1,I)=0 4170 M(I)=T(1,I) 4180 GOTO 4690 4190 IF T(2,I)<>-5 THEN 4630 4200 T(2,I)=0 4210 M(I)=T(2,I) 4220 GOTO 4690 4230 IF F(1,I)<>-5 THEN 4630 4240 F(1,I)=0 4250 M(I)=F(1,I) 4260 GOTO 4690 4270 IF F(2,I)<>-5 THEN 4630 4280 F(2,I)=0 4290 M(I)=F(2,I) 4300 GOTO 4690 4310 IF S(1,I)<>-5 THEN 4630 4320 S(1,I)=0 4330 M(I)=S(1,I) 4340 GOTO 4690 4350 IF T(3,I)<>-5 THEN 4630 4360 T(3,I)=0 4370 M(I)=T(3,I) 4380 GOTO 4690 4390 IF F(3,I)<>-5 THEN 4630 4400 F(3,I)=0 4410 M(I)=F(3,I) 4420 GOTO 4690 4430 IF F(4,I)<>-5 THEN 4630 4440 F(4,I)=0 4450 M(I)=F(4,I) 4460 GOTO 4690 4470 IF S(2,I)<>-5 THEN 4630 4480 S(2,I)=0 4490 M(I)=S(2,I) 4500 GOTO 4690 4510 IF L(1,I)<>-5 THEN 4630 4520 L(1,I)=0 4530 M(I)=L(1,I) 4540 GOTO 4690 4550 IF Y(I)<>-5 THEN 4630 4560 Y(I)=0 4570 M(I)=Y(I) 4580 GOTO 4690 4590 IF C(I)<>-5 THEN 4630 4600 C(I)=0 4610 M(I)=C(I) 4620 GOTO 4690 4630 GOSUB 4650 4640 GOTO 2620 4650 PRINT "DU HAST SCHON ";Z$;" BELEGT ALS KATEGORIE" 4660 PRINT 4670 RETURN 4680 GOTO 2620 4690 PRINT N$(I);"DU BEKOMMST EINE WERTUNG VON";M(I);" FUR DIESE RUNDE" 4700 GOTO 5750 4710 NEXT I 4720 PRINT 4730 FOR J=1 TO P 4740 IF M(J)=A(1,J) THEN 4810 4750 IF M(J)=T(1,J) THEN 4810 4760 IF M(J)=T(2,J) THEN 4810 4770 IF M(J)=F(1,J) THEN 4810 4780 IF M(J)=F(2,J) THEN 4810 4790 IF M(J)=S(1,J) THEN 4810 4800 GOTO 4920 4810 K(1,J)=K(1,J)+M(J) 4830 IF K(1,J)>=63 THEN 4860 4840 K1(J)=K1(J)+M(J) 4850 GOTO 4930 4860 K(1,J)=K(1,J)+35 4870 PRINT N$(J);" ZULETZT GESPEICHERT SIND 63 PUNKTE" 4880 PRINT "IN DEN ERSTEN SECHS KATEGORIEN." 4890 PRINT "VERZEICHNET IST EIN BONUS VON 35 PUNKTEN!" 4900 K1(J)=K1(J)+M(J) 4910 GOTO 4930 4920 K1(J)=K1(J)+M(J) 4930 PRINT N$(J);" HAT ";K1(J);" PUNKTE" 4940 NEXT J 4950 GOTO 1490 4960 PRINT "DER GEBRAUCH VON ";Z$;" IST NICHT ERLAUBT IN DIESER RUNDE" 4970 GOTO 2620 5680 PRINT "WELCHE KATEGORIE WILLST DU NULLSETZEN" 5690 RETURN 5710 PRINT "EIN MAXIMUM VON 15 SPIELERN IST ERLAUBT" 5720 RETURN 5750 IF Z$="EINS" THEN 5880 5760 IF Z$="ZWEI" THEN 5900 5770 IF Z$="DREI" THEN 5920 5780 IF Z$="VIER" THEN 5940 5790 IF Z$="FUENF" THEN 5960 5800 IF Z$="SECHS" THEN 5980 5810 IF Z$="DREI GLEICHE" THEN 6000 5820 IF Z$="VIER GLEICHE" THEN 6020 5830 IF Z$="VOLLES HAUS" THEN 6040 5840 IF Z$="KLEINE STRASSE" THEN 6060 5850 IF Z$="GROSSE STRASSE" THEN 6080 5860 IF Z$="YAHTZEE" THEN 6100 5870 IF Z$="CHANCE" THEN 6120 5880 H(I,R)=1\GOTO 4710 5900 H(I,R)=2\GOTO 4710 5920 H(I,R)=3\GOTO 4710 5940 H(I,R)=4\GOTO 4710 5960 H(I,R)=5\GOTO 4710 5980 H(I,R)=6\GOTO 4710 6000 H(I,R)=7\GOTO 4710 6020 H(I,R)=8\GOTO 4710 6040 H(I,R)=9\GOTO 4710 6060 H(I,R)=10\GOTO 4710 6080 H(I,R)=11\GOTO 4710 6100 H(I,R)=12\GOTO 4710 6120 H(I,R)=13\GOTO 4710 6140 PRINT N$(I);" HAT FOLGENDE KATEGORIEN GEBRAUCHT:" 6150 FOR S=1 TO R-1 6160 IF H(I,S)>7 THEN 6180 6170 IF H(I,S)=2 GOTO 6210\IFH(I,S)=3GOTO6230\IFH(I,S)=4GOTO6250 6175 IF H(I,S)=5 GOTO 6270\IFH(I,S)=6GOTO6290\IFH(I,S)=7GOTO6310 6180 IF H(I,S)=8 GOTO 6330\IFH(I,S)=9GOTO6350\IFH(I,S)=10GOTO6370 6185 IF H(I,S)=11GOTO6390\IFH(I,S)=12GOTO6410\IFH(I,S)=13GOTO6430 6190 PRINT "EINS, ";\GOTO 6440 6210 PRINT "ZWEI, ";\GOTO 6440 6230 PRINT "DREI, ";\GOTO 6440 6250 PRINT "VIER, ";\GOTO 6440 6270 PRINT "FUENF, ";\GOTO 6440 6290 PRINT "SECHS, ";\GOTO 6440 6310 PRINT "DREI GLEICHE, ";\GOTO 6440 6330 PRINT "VIER GLEICHE, ";\GOTO 6440 6350 PRINT "VOLLES HAUS, ";\GOTO 6440 6370 PRINT "KLEINE STRASSE, ";\GOTO 6440 6390 PRINT "GROSSE STRASSE, ";\GOTO 6440 6410 PRINT "YAHTZEE, ";\GOTO 6440 6430 PRINT "CHANCE, "; 6440 NEXT S 6445 PRINT\PRINT "DU HAST ";K1(I);" PUNKTE." 6447 PRINT "UND ";K(1,I);" VON DEN 65 PUNKTEN BENOETIGT VUER DEN BONUS"; 6450 PRINT "." 6460 RETURN 6470 G=0 6480 FOR X=1 TO P 6490 IF S1(X)>=S1(X+1) THEN 6540 6500 H=S1(X) 6510 S1(X)=S1(X+1) 6520 S1(X+1)=H 6530 G=1 6540 NEXT X 6550 IF G=1 THEN 6470 6560 PRINT "DAS SPIEL IST AUS."\PRINT 6571 FOR X=1 TO P\IF K1(X)=S1(X) THEN 6580\NEXT X 6580 GOTO 6585 6585 IF P=1 THEN 9999 6586 PRINT "ENDRESULTAT:" 6590 FOR Y=1 TO P 6600 IF K1(Y)=S1(X) THEN 6620 6610 PRINT N$(Y);" HAT BEENDET MIT ";K1(Y);" PUNKTEN." 6620 NEXT Y 9999 END