10 REM * * * GAME OF YAHTZEE * * * 15 DIM C(5),K(14,7),G(5),F(4),H2(6),L2(6),B5(7),B8(7) 20 PRINT\PRINT "GAME OF 'YAHTZEE'"\RANDOMIZE\PRINT 25 PRINT "DO YOU WANT INSTRUCTIONS [Y OR N]"; 30 INPUT B$\IF B$="N" THEN 45\IF B$="Y" THEN 40\GOTO 25 40 GOSUB 995 45 PRINT "HOW MANY PLAYERS ";\INPUT N 50 IF N<1 THEN 45\IF N<=7 THEN 75 55 PRINT "MAXIMUM NUMBER OF PLAYERS IS 7" 70 GOTO 45 75 FOR A0=1 TO N 80 PRINT "NAME OF PLAYER NO.";A0;\INPUT A$(A0)\NEXT A0 85 PRINT "WOULD YOU LIKE A SCORECARD [Y OR N] ";\INPUT B$ 90 IF B$="N" THEN 100\IF B$="Y" THEN 945\GOTO 85 100 H=0\PRINT\A=A+1\IF A<>N+1 THEN 105\A=1 105 FOR B=1 TO 5\C(B)=INT(6*RND(1))+1\NEXT B\PRINT 110 PRINT\PRINT A$(A);"'S NUMBERS: ";\H=H+1 115 PRINT C(1);C(2);C(3);C(4);C(5)\IF H=3 THEN 210 120 PRINT "HOW MANY ";\INPUT E 125 IF E<>25 THEN 130\GOSUB 1020\GOTO 120 130 IF E>5 THEN 120 135 IF E<0 THEN 120\IF INT(E)<>E THEN 120 140 IF E=0 THEN 210\IF E=5 THEN 105 145 FOR F3=1 TO 4\F(F3)=0\NEXT F3 150 PRINT "WHICH DICE "; 152 IF E=1 THEN 160\IF E=2 THEN 165\IF E=3 THEN 170 153 IF E=4 THEN 175\IF E=5 THEN 160\GOTO 150 160 INPUT F(1)\GOTO 180 165 INPUT F(1),F(2)\GOTO 180 170 INPUT F(1),F(2),F(3)\GOTO 180 175 INPUT F(1),F(2),F(3),F(4)\GOTO 180 180 FOR F1=1 TO 4\F(F1)=INT(F(F1))\IF F(F1)>5 THEN 150 185 IF F(F1)<0 THEN 150\NEXT F1 190 FOR F2=1 TO 4\IF F(F2)=0 THEN 200 195 C(F(F2))=INT(6*RND(1))+1 200 NEXT F2 205 GOTO 110 210 PRINT A$(A);"'S SCOREBOARD NUMBER"; 215 INPUT I 220 IF I<>25 THEN 225\GOSUB 1020\GOTO 210 225 IF I<1 THEN 210\I=INT(I)\IF I<14 THEN 245 230 PRINT "CONFIRM [Y OR N] ";\INPUT B$ 235 IF B$="N" THEN 210\IF B$="Y" THEN 735 245 IF K(I,A)=0 THEN 260 250 PRINT A$(A); ", YOU HAVE ALREADY USED ROW #";I; 255 PRINT "YOU HAVE";K(I,A);"POINTS IN ROW #";I\GOTO 210 260 IF I>6 THEN 305 265 REM CATEGORIES 1 THROUGH 6 270 K=0 275 FOR G=1 TO 5\IF C(G)<>I THEN 280\K=K+I 280 NEXT G\IF K=0 THEN 295\ IF K<>1 THEN 300 285 PRINT A$(A);", YOU NOW HAVE 1 POINT IN ROW NUMBER 1 (ACES)" 290 K(1,A)=1\GOTO 720 295 K(I,A)=.4\GOTO 620 300 K(I,A)=K\GOTO 620 305 IF I-6=1 THEN 315\IF I-6=2 THEN 320\IF I-6=3 THEN 400 306 IF I-6=4 THEN 485\IF I-6=5 THEN 485\IF I-6=6 THEN 325 307 IF I-6=7 THEN 605\PRINT "ERROR HALT"\STOP 310 REM ***3 OF A KIND, 4 OF A KIND, YAHTZEE 315 R=3\T=C(1)+C(2)+C(3)+C(4)+C(5)\GOTO 330 320 R=4\T=C(1)+C(2)+C(3)+C(4)+C(5)\GOTO 330 325 R=5\T=50 330 FOR H3=1 TO 6\H2(H3)=0\NEXT H3 335 FOR H=1 TO 6\FOR H1=1 TO 5 340 IF C(H1)<>H THEN 350 345 H2(H)=H2(H)+1 350 NEXT H1\NEXT H 355 FOR H4=1 TO 6 360 IF H2(H4)>=R THEN 370 365 NEXT H4\K(I,A)=.4\GOTO 620 370 IF K(I,A)=50 THEN 380 375 K(I,A)=T\IF I<>I2 THEN 395 380 PRINT CHR$(7)\PRINT CHR$(7)\FOR V4=1 TO 7\PRINT CHR$(7);\NEXT V4 385 PRINT "CONGRATULATIONS ";A$(A);", YOU HAVE A YAHTZEE!!!" 390 PRINT CHR$(7)\PRINT CHR$(7)\FOR V4=1 TO 7\PRINT CHR$(7)\NEXT V4 395 GOTO 620 400 REM *** FULL HOUSE 405 L4=0\L5=0\FOR L=1 TO 6\L2(L)=0\NEXT L 410 FOR L=1 TO 6\FOR L1=1 TO 5 415 IF C(L1)<>L THEN 425 420 L2(L)=L2(L)+1 425 NEXT L1\NEXT L 430 FOR L3=1 TO 6 435 IF L5=1 THEN 450 440 IF L2(L3)<>2 THEN 450 445 L5=L5+1\GOTO 455 450 IF L2(L3)<>3 THEN 460 455 L4=L4+1 460 NEXT L3 465 IF L4=2 THEN 475 470 K(9,A)=.4\GOTO 620 475 K(9,A)=25\GOTO 620 480 GOTO 620 485 REM *** PUT NUMBERS IN ORDER - STRAIGHTS 490 FOR M1=1 TO 5\FOR M2=1 TO M1 495 IF C(M1)=>C(M2) THEN 505 500 Z=C(M1)\C(M1)=C(M2)\C(M2)=Z 505 NEXT M2\NEXT M1 510 G=0\M3=0\G3=0\RESTORE 515 G2=0\IF I=11 THEN 545 520 G=G+1\IF G=15 THEN 600 525 READ G(1),G(2),G(3),G(4),G(5)\GOTO 570 530 DATA 1,2,3,4,7,2,3,4,5,7,7,3,4,5,6,7,2,3,4,5,7,1,2,3,4 535 DATA 1,7,2,3,4,1,2,7,3,4,1,2,3,7,4,2,7,3,4,5,2,3,4,7,5 540 DATA 2,3,7,4,5,3,7,4,5,6,3,4,7,5,6,3,4,5,7,6 545 IF G3>1 THEN 600 550 G3=G3+1\G5=0 555 FOR G4=G3 TO (G3+4) 560 G5=G5+1\G(G5)=G4 565 NEXT G4 570 FOR G1=1 TO 5 575 IF C(G1)<>G(G1) THEN 580\G2=G2+1 580 NEXT G1 585 IF G2=I-6 THEN 590\GOTO 515 590 IF I=11 THEN 595\K(I,A)=30\GOTO 620 595 K(I,A)=40\GOTO 620 600 K(I,A)=.4\GOTO 620 605 REM *** CHANCE 610 Y1=0 615 FOR Y=1 TO 5\Y1=C(Y)+Y1\NEXT Y\K(13,A)=Y1 620 PRINT A$(A);", YOU HAVE";INT(K(I,A));"POINTS IN ROW #";I;", "; 625 PRINT "("; 630 IF I>6 THEN 640 635 IF I=1 THEN 645\IF I=2 THEN 650\IF I=3 THEN 655\IF I=4 THEN 660 636 IF I=5 THEN 665\IF I=6 THEN 670 640 IF I-6=1 THEN 675\IF I-6=2 THEN 680\IF I-6=3 THEN 685 641 IF I-6=4 THEN 690\IF I-6=5 THEN 695\IF I-6=6 THEN 700 642 IF I-6=7 THEN 705 645 PRINT "ACES";\GOTO 710 650 PRINT "TWOS";\GOTO 710 655 PRINT "THREES";\GOTO 710 660 PRINT "FOURS";\GOTO 710 665 PRINT "FIVES";\GOTO 710 670 PRINT "SIXES";\GOTO 710 675 PRINT "3 OF A KIND";\GOTO 710 680 PRINT "4 OF A KIND";\GOTO 710 685 PRINT "FULL HOUSE";\GOTO 710 690 PRINT "SMALL STRAIGHT";\GOTO 710 695 PRINT "LARGE STRAIGHT";\GOTO 710 700 PRINT "YAHTZEE";\GOTO 710 705 PRINT "CHANCE"; 710 IF E=25 THEN 1030\IF I0=25 THEN 1030 715 PRINT ")" 720 FOR B=1 TO N\FOR B1=1 TO 13 725 IF K(B1,B)=0 THEN 100 730 NEXT B1\ NEXT B 735 FOR B3=1 TO N\B5(B3)=0\B8(B3)=0\NEXT B3 740 PRINT 745 FOR B3=1 TO N\FOR B4=1 TO 6 750 B5(B3)=B5(B3)+INT(K(B4,B3)) 755 NEXT B4\NEXT B3 760 FOR B6=1 TO N\FOR B7=7 TO 13 765 B8(B6)=B8(B6)+INT(K(B7,B6)) 770 NEXT B7\NEXT B6 775 FOR B3=1 TO N 780 IF B5(B3)<63 THEN 790 785 K(14,B3)=35 790 NEXT B3 795 GOSUB 940 800 FOR A9=1 TO N 805 PRINT\PRINT\PRINT 810 PRINT TAB(19);A$(A9);"'S TOTALS"\PRINT TAB(19);"*************" 815 PRINT 820 PRINT "ACES------------";INT(K(1,A9)) 825 PRINT "TWOS------------";INT(K(2,A9)) 830 PRINT "THREES----------";INT(K(3,A9)) 835 PRINT "FOURS-----------";INT(K(4,A9)) 840 PRINT "FIVES-----------";INT(K(5,A9)) 845 PRINT "SIXES-----------";INT(K(6,A9))\PRINT 850 PRINT "3 OF A KIND-----";INT(K(7,A9)) 855 PRINT "4 OF A KIND-----";INT(K(8,A9)) 860 PRINT "FULL HOUSE------";INT(K(9,A9)) 865 PRINT "SMALL STRAIGHT--";INT(K(10,A9)) 870 PRINT "LARGE STRAIGHT--";INT(K(11,A9)) 875 PRINT "YAHTZEE---------";INT(K(12,A9)) 880 PRINT "CHANCE----------";INT(K(13,A9)) 885 PRINT\PRINT "TOTAL OF UPPER HALF---------";B5(A9) 890 PRINT "BONUS-----------------------";K(14,A9) 895 PRINT "TOTAL OF LOWER HALF---------";B8(A9) 905 B9=B5(A9)+B8(A9)+K(14,A9) 910 PRINT A$(A9);"'S GRAND TOTAL--------------";B9 915 GOSUB 940 920 NEXT A9 925 IF I>13 THEN 210 930 STOP 940 FOR E=1 TO 72\PRINT "-";\NEXT E\PRINT\RETURN 945 GOSUB 940 950 PRINT "1**ACES"\GOSUB 940\PRINT "2**TWOS"\GOSUB 940 955 PRINT "3**THREES"\GOSUB 940\PRINT "4**FOURS"\GOSUB 940 960 PRINT "5**FIVES"\GOSUB 940\PRINT "6**SIXES"\GOSUB 940 965 PRINT "7**3 OF A KIND"\GOSUB 940\PRINT "8**4 OF A KIND"\GOSUB 940 970 PRINT "9**FULL HOUSE"\GOSUB 940\PRINT "10**SM. STRAIGHT"\GOSUB 940 975 PRINT "11**LG. STRAIGHT"\GOSUB 940\PRINT "12**YAHTZEE"\GOSUB 940 980 PRINT "13**CHANCE"\GOSUB 940 985 FOR E1=1 TO 8\PRINT\NEXT E1\PRINT "TEAR OFF SCORECARD" 990 REM *****DELAY HERE IF NEEDED\GOTO 85 995 PRINT "TOTALS WILL BE PRINTED IF YOU RESPOND TO" 1000 PRINT "'SCORECARD NUMBER' WITH A NUMBER GREATER THAN 13." 1005 PRINT "TO SEE WHAT SCORECARD OPTIONS YOU HAVE NOT YET USED," 1010 PRINT "RESPOND TO 'HOW MANY' OR 'SCORECARD NUMBER' WITH 25." 1015 RETURN 1020 PRINT A$(A);", YOU HAVE THE FOLLOWING SCOREBOARD OPTIONS LEFT:" 1025 I0=25\FOR I=1 TO 13\IF K(I,A)=0 THEN 630\GOTO 1035 1030 PRINT " "; 1035 NEXT I\PRINT "."\I0=0\RETURN 1040 END