10 REM ...DICEG.BS5 20 REM ...DICEGAM...from MECC : H1C1120 1-13-78 100 DIM J(144) 108 PRINT "IF ANYTHING GOES WRONG WITH THIS PROGRAM," 109 PRINT " PLEASE LET MR.SPOCK KNOW (USE SYSMAIL)." 110 PRINT "INSTRUCTIONS?"; 120 INPUT " (1=Yes, 0=No) --=>"A9 130 IF A9=0 THEN 370 140 PRINT "THE OBJECT OF THIS GAME IS TO COMPETE TO CALCULATE" 150 PRINT "THE MOST DIFFERENT VALUES POSSIBLE BETWEEN 1 AND 100." 160 PRINT "YOU WILL SIMULATE ROLLING DICE, AND CAN ROLL EITHER 2" 170 PRINT "OR 4 ON EACH TURN. IF YOU ROLL 2 DICE, THE PAIR OF" 180 PRINT "NUMBERS YOU GET IS TO BE USED TO MAKE AS MANY VALUES FROM" 190 PRINT "1 TO 100 AS POSSIBLE. VALUES ALREADY MADE DURING A GAME" 200 PRINT "CANNOT BE REPEATED IN THAT GAME." 210 PRINT " EXAMPLE: IF YOU ROLL A 2 AND A 6 YOU COULD CLAIM:" 220 PRINT " 8 (2+6) 4 (6-2) 12 (6*2) 3 (6/2)" 230 PRINT " 64 (2^6 MEANS 2 TO THE 6TH POWER)" 240 PRINT "36 (6^2)" 250 PRINT " 26 AND 62 ALSO." 260 PRINT 265 INPUT "(Enter any number to see more) ---=>"A9 270 PRINT "IF YOU CHOOSE TO ROLL 4 DICE, THEY WILL BE PAIRED UP" 280 PRINT "FOR YOU. EXAMPLE: ROLL A 6 AND A 9 AND YOU COULD CLAIM" 290 PRINT "69,96,54,15,AND 3." 300 PRINT "IF YOU FORGET TO CLAIM SOME NUMBERS, YOU LOSE 10 POINTS." 310 PRINT "IF YOU CLAIM AN IMPROPER NUMBER YOU LOSE 10 POINTS." 320 PRINT " ENTER THE NUMBERS ONE AT A TIME WHEN ASKED FOR," 330 PRINT "AND A 0 WHEN DONE." 340 PRINT 350 PRINT "IF AT ANY TIME YOU WANT A LIST OF ALL NUMBERS NOT USED YET," 360 PRINT " TYPE -1 FOR YOUR GUESS. LOTSA LUCK." 370 PRINT "HOW MANY PLAYERS?"; 380 INPUT " --=>"B 385 IF B<1 THEN 2000 390 PRINT "NAMES PLEASE" 400 X=RND(0): PRINT " WE HAVE..." 410 FOR D=1 TO B 420 PRINT TAB(9);"PLAYER #";D; 430 REM INPUT P$(D) 440 NEXT D 450 PRINT: PRINT " HOW MANY ROUNDS?"; 460 INPUT " --=>"F 465 IF F<1 THEN 2100 470 FOR G=1 TO F 480 PRINT 481 PRINT "ROUND #";G 490 PRINT "SCORES "; 500 FOR X4=1 TO B 510 PRINT "Player #";X4;S(X4) 520 NEXT X4 530 PRINT 540 FOR X=1 TO B 550 PRINT 551 PRINT "Player #";X;" HOW MANY DICE?"; 560 INPUT " ---=>"E 570 IF E=4 THEN 610 580 IF E=2 THEN 610 590 PRINT "2 OR 4 PLEASE" 600 GOTO 550 610 G1=INT(RND(0)*6+1) 620 G2=INT(RND(0)*6+1) 630 IF E=2 THEN 660 640 G1=G1+INT(RND(0)*6+1) 650 G2=G2+INT(RND(0)*6+1) 660 PRINT "ROLL: A ";G1;" AND A ";G2 670 PRINT "YOUR CALCULATED VALUES?"; 680 INPUT " --=>"I 685 K3=K3+1 690 IF I=0 THEN 990 700 IF I=-1 THEN 1350 710 IF I<101 THEN 740 720 PRINT "SORRY, NO NUMBERS OVER 100" 730 GOTO 670 740 IF I=G1+G2 THEN 900 750 IF I=ABS(G1-G2) THEN 900 760 IF I=G1*G2 THEN 900 770 IF G1/G2=INT(G1/G2) THEN 800 780 IF G2/G1=INT(G2/G1) THEN 800 790 GOTO 820 800 IF I=G1/G2 THEN 900 810 IF I=G2/G1 THEN 900 820 GOSUB 1700 825 IF I=G3 THEN 900 830 GOSUB 1800 835 IF I=G3 THEN 900 840 IF I=10*G1+G2 THEN 900 850 IF I=10*G2+G1 THEN 900 860 PRINT "THAT IS NOT AN OK ANSWER. TRY AGAIN." 870 PRINT "YOU LOSE 10 POINTS" 880 S(X)=S(X)-10 890 GOTO 680 900 IF J(I)=0 THEN 930 910 PRINT "SORRY, THAT NUMBER WAS USED. TRY AGAIN." 915 K3=K3-1 920 GOTO 680 930 J(I)=1 940 PRINT "SCORE NOW";S(X);" +";I;" ="; 950 S(X)=S(X)+I 960 PRINT S(X) 970 PRINT "NEXT VALUE"; 980 GOTO 680 990 REM 1000 IF J(G1+G2)=0 THEN 1190 1001 K6=K6+1 1005 IF G1*G1>100 THEN 1011 1010 IF J(G1*G2)=0 THEN 1190 1011 K6=K6+1 1020 IF G1/G2<>INT(G1/G2) THEN 1040 1021 REM 1030 IF J(G1/G2)=0 THEN 1190 1031 REM 1040 IF G2/G1<>INT(G2/G1) THEN 1051 1041 REM 1050 IF J(G2/G1)=0 THEN 1190 1051 K6=K6+1 1055 IF G1=G2 THEN 1061 1060 IF J(ABS(G1-G2))=0 THEN 1190 1061 K6=K6+1 1070 IF 10*G1+G2>100 THEN 1081 1071 REM 1076 IF G1>9 THEN 1081 1077 IF G2>9 THEN 1081 1080 IF J(10*G1+G2)=0 THEN 1190 1081 K6=K6+1 1086 IF G1>9 THEN 1101 1087 IF G2>9 THEN 1101 1090 IF 10*G2+G1>100 THEN 1101 1091 REM 1100 IF J(10*G2+G1)=0 THEN 1190 1101 K6=K6+1 1110 REM 1111 REM 1120 GOSUB 1700 1125 IF G3>100 THEN 1131 1126 REM 1130 IF J(G3)=0 THEN 1190 1131 K6=K6+1 1140 GOSUB 1800 1145 IF G3>100 THEN 1151 1146 REM 1150 IF J(G3)=0 THEN 1190 1151 IF K3>1 THEN 1160 1152 PRINT "THAT WAS A BUMMER, WASN'T IT. I'LL GIVE YOU " 1153 N4=INT((RND(0)*30+30)/G)+1 1154 PRINT N4;" POINTS JUST FOR BEING A GOOD KID." 1155 S(X)=S(X)+N4 1159 K6=0 1160 K3=0 1161 NEXT X 1170 NEXT G 1180 GOTO 1230 1190 PRINT "LOSE 10 POINTS." 1191 GOTO 1450 1200 PRINT 1210 S(X)=S(X)-10 1220 GOTO 1160 1230 PRINT "THAT'S ALL. FINAL SCORES" 1240 FOR X=1 TO B 1250 PRINT "Player #";X;S(X) 1255 IF S(X)W THEN 1330 1320 PRINT "Player #";X 1330 NEXT X 1340 GOTO 1420 1350 PRINT "NUMBERS LEFT" 1360 FOR Z2=1 TO 100 1370 IF J(Z2)<>0 THEN 1390 1380 PRINT Z2; 1390 NEXT Z2 1400 PRINT 1410 GOTO 670 1420 GOTO 9000 1450 REM 1460 K6=K6+1 1461 REM ON K6 GOTO 1470,1490,1510,1530,1550,1570,1590,1610 1462 IF K6=1 THEN PRINT "YOU FORGOT TO ADD.": GOTO 1620 1463 IF K6=2 THEN PRINT "YOU FORGOT TO MULTIPLY": GOTO 1620 1464 IF K6=3 THEN PRINT "YOU FORGOT TO DIVIDE.": GOTO 1620 1465 IF K6=4 THEN PRINT "YOU FORGOT TO SUBTRACT.": GOTO 1620 1466 IF K6=5 THEN PRINT "WHAT'S WRONG WITH";10*G1+G2;" ?": GOTO 1620 1467 IF K6=6 THEN PRINT "WHAT'S WRONG WITH";10*G2+G1;" ?": GOTO 1620 1468 IF K6=7 THEN PRINT "TRY";G1;" ^";G2: GOTO 1620 1469 IF K6=8 THEN 1610 PRINT "HOW ABOUT";G2;" ^";G1;" ?" 1620 K6=0 1630 GOTO 1200 1700 REM ... Calculate G1^G2 or G1 to power of G2 1710 G3=G1 1720 FOR X=2 TO G2 1730 G3=G3*G1 1740 NEXT X 1750 RETURN 1800 REM ... Calculate G2^G1 or G2 to power of G1 1810 G3=G2 1820 FOR X=2 TO G1 1830 G3=G3*G2 1840 NEXT X 1850 RETURN 2000 PRINT "O.K., I am assuming you want to quit.": GOTO 9000 2100 PRINT "I will interpret that as 'you are done'." 9000 END