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 "HOW MANY PLAYERS (TYPE: '0' FOR INSTRUCTIONS)"; 1140 INPUT P 1150 IF P>15 THEN 1180 1160 IF P<>0 THEN 1240\CHAIN "RKB0: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 "ROUND";R\PRINT 1540 FOR I=1 TO P 1550 PRINT\PRINT\PRINT N$(I);"'S TURN" 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 "YOU HAVE A ";A1(1);A1(2);A1(3);A1(4);A1(5) 1710 PRINT "THIS IS YOUR 2ND OF 3 ROLLS," 1720 PRINT "HOW MANY DO YOU WANT TO CHANGE"; 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 "WHICH"; 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 "YOU HAVE A ";A1(1);A1(2);A1(3);A1(4);A1(5) 2150 PRINT "THIS IS YOUR LAST ROLL," 2160 PRINT "HOW MANY DO YOU WANT TO CHANGE"; 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 "WHICH"; 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 "YOU HAVE A ";A1(1);A1(2);A1(3);A1(4);A1(5) 2620 PRINT "HOW DO YOU WANT THIS ROUND SCORED"; 2630 INPUT Z$ 2650 IF Z$="SUMMARY" THEN 2670 2660 GOTO 2700 2670 GOSUB 6140 2675 GOTO 2620 2700 IF Z$="ACES" THEN 2850 2710 IF Z$="TWOS" THEN 2940 2720 IF Z$="THREES" THEN 3030 2730 IF Z$="FOURS" THEN 3120 2740 IF Z$="FIVES" THEN 3210 2750 IF Z$="SIXES" THEN 3300 2760 IF Z$="THREE OF A KIND" THEN 3390 2770 IF Z$="FOUR OF A KIND" THEN 3440 2780 IF Z$="FULL HOUSE" THEN 3520 2790 IF Z$="SM. STRAIGHT" THEN 3620 2800 IF Z$="LG. STRAIGHT" THEN 3660 2810 IF Z$="YAHTZEE" THEN 3730 2820 IF Z$="CHANCE" THEN 3820 2830 IF Z$="ZERO" 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 "WHAT DO YOU WANT TO ZERO"; 3900 INPUT Z$ 3920 IF Z$="SUMMARY" THEN 3940 3930 GOTO 3970 3940 GOSUB 6140 3945 GOTO 2620 3970 IF Z$="ACES" THEN 4110 3980 IF Z$="TWOS" THEN 4150 3990 IF Z$="THREES" THEN 4190 4000 IF Z$="FOURS" THEN 4230 4010 IF Z$="FIVES" THEN 4270 4020 IF Z$="SIXES" THEN 4310 4030 IF Z$="THREE OF A KIND" THEN 4350 4040 IF Z$="FOUR OF A KIND" THEN 4390 4050 IF Z$="FULL HOUSE" THEN 4430 4060 IF Z$="SM. STRAIGHT" THEN 4470 4070 IF Z$="LG. STRAIGHT" 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 "YOU HAVE ALREADY USED ";Z$;" AS A CATEGORY" 4660 PRINT 4670 RETURN 4680 GOTO 2620 4690 PRINT N$(I);" YOU GET A SCORE OF ";M(I);" FOR THIS ROUND" 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);" HAS ACCUMULATED AT LEAST 63 POINTS" 4880 PRINT "IN THE FIRST SIX CATEGORIES." 4890 PRINT "HE SCORED A BONUS OF 35 POINTS!" 4900 K1(J)=K1(J)+M(J) 4910 GOTO 4930 4920 K1(J)=K1(J)+M(J) 4930 PRINT N$(J);" HAS ";K1(J);" POINTS" 4940 NEXT J 4950 GOTO 1490 4960 PRINT "IT IS ILLEGAL TO USE ";Z$;" THIS ROUND" 4970 GOTO 2620 5680 PRINT "WHICH CATEGORY DO YOU WANT ZEROED" 5690 RETURN 5710 PRINT "A MAXIMUM OF 15 PLAYERS IS ALLOWED" 5720 RETURN 5750 IF Z$="ACES" THEN 5880 5760 IF Z$="TWOS" THEN 5900 5770 IF Z$="THREES" THEN 5920 5780 IF Z$="FOURS" THEN 5940 5790 IF Z$="FIVES" THEN 5960 5800 IF Z$="SIXES" THEN 5980 5810 IF Z$="THREE OF A KIND" THEN 6000 5820 IF Z$="FOUR OF A KIND" THEN 6020 5830 IF Z$="FULL HOUSE" THEN 6040 5840 IF Z$="SM. STRAIGHT" THEN 6060 5850 IF Z$="LG. STRAIGHT" 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);" HAS USED THE FOLLOWING CATEGORIES:" 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 "ACES, ";\GOTO 6440 6210 PRINT "TWOS, ";\GOTO 6440 6230 PRINT "THREES, ";\GOTO 6440 6250 PRINT "FOURS, ";\GOTO 6440 6270 PRINT "FIVES, ";\GOTO 6440 6290 PRINT "SIXES, ";\GOTO 6440 6310 PRINT "THREE OF A KIND, ";\GOTO 6440 6330 PRINT "FOUR OF A KIND, ";\GOTO 6440 6350 PRINT "FULL HOUSE, ";\GOTO 6440 6370 PRINT "SM. STRAIGHT, ";\GOTO 6440 6390 PRINT "LG. STRAIGHT, ";\GOTO 6440 6410 PRINT "YAHTZEE, ";\GOTO 6440 6430 PRINT "CHANCE, "; 6440 NEXT S 6445 PRINT\PRINT "HE HAS ";K1(I);" POINTS." 6447 PRINT "AND ";K(1,I);" OF THE 65 POINTS NEEDED FOR THE 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 "THE GAME IS OVER."\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 "FINAL SCORES ARE:" 6590 FOR Y=1 TO P 6600 IF K1(Y)=S1(X) THEN 6620 6610 PRINT N$(Y);" FINISHES WITH ";K1(Y);" POINTS." 6620 NEXT Y 9999 END