100 REM WRITTEN BY W.A.BURTON NOV.1977 101 PRINT CHR$(26) : WIDTH 80 102 PRINT TAB(20); "*** 1500 GAME ***" 103 PRINT : PRINT : PRINT 104 INPUT " DOES ANYONE NEED INSTRUCTIONS"; A$ 105 IF LEFT$(A$,1)="Y" THEN GOSUB 237 106 CLEAR : BL$=" " : GF=0 107 PRINT CHR$(26) 108 INPUT " HOW MANY PLAYERS (2 TO 7)"; P 109 PRINT CHR$(26) 110 IF P<2 OR P>7 OR P<>INT(P) THEN PRINT "WRONG !!"; : GOTO 108 111 DIM PL$(P), PS(P), DI(3), Q(P) 112 FOR X=1 TO P 113 PRINT "PLAYER #"; X; : INPUT "WHAT IS YOUR NAME "; PL$(X) 114 GOSUB 204 : A=0 115 NEXT X 116 GOSUB 215 117 ' 118 ' 119 ' 120 REM MAIN MODULE 121 PRINT "HIT RETURN TO PLAY" : WAIT 0,1,1 : PRINT CHR$(26) 122 TF=0 : TP=0 123 GOSUB 150 124 GOSUB 154 125 GOSUB 161 126 IF Q(CO)=0 AND (TP+PS(CO))>=250 THEN Q(CO)=1 : ELSE 129 127 PRINT PL$(CO); ", YOU'RE QUALIFIED" 128 PS(CO)=PS(CO)+TP : GOTO 136 129 IF Q(CO)=1 THEN 133 130 IF Q(CO)=0 AND TF=0 THEN 123 131 IF Q(CO)=0 AND TF=1 THEN PRINT "SORRY, "; PL$(CO); ", YOU BUSTED" ELSE 135 132 PRINT : GOTO 135 133 IF TF=1 THEN PRINT TAB(15); "BUSTED" ELSE 142 134 PRINT 135 PS(CO)=PS(CO)+TP 136 CO=CO+1 137 IF CO>P THEN CO=1 138 PRINT PL$(CO); ", HIT RETURN FOR YOUR TURN" 139 WAIT 0,1,1 : PRINT CHR$(26) 140 GOSUB 195 141 GOTO 122 142 A$="TRAP" 143 INPUT " DO YOU WANT TO ROLL AGAIN "; A$ : PRINT 144 IF LEFT$(A$,1)="Y" THEN 123 145 IF LEFT$(A$,1)="N" THEN 135 146 PRINT "TRY AGAIN !!"; : GOTO 142 147 ' 148 ' 149 ' 150 REM THIS 'ROLLS' THE DICE & CHECKS FOR 'TRIPLES' 151 FOR X=1 TO 3 152 DI(X)=INT(RND(1)*6)+1 153 NEXT 154 REM CHECK FOR 'TRIPS' 155 TR$="" 156 IF DI(1)=DI(2) AND DI(2)=DI(3) THEN TR$=" ** TRIPLE **" 157 RETURN 158 ' 159 ' 160 ' 161 REM THIS PRINTS OUT PLAYER'S SCORE 162 PRINT PL$(CO); ", YOUR ROLL WAS"; 163 PRINT BL$; DI(1); BL$; DI(2); BL$; DI(3); TR$ 164 PRINT : GOSUB 171 165 PRINT TAB(15); "YOUR SCORE FOR THIS TURN "; TP 166 IF Q(CO)=0 THEN PRINT 167 RETURN 168 ' 169 ' 170 ' 171 REM THIS COMPUTES PLAYER'S SCORE 172 IF TR$<>"" THEN 184 173 IF DI(1)=5 THEN TP=TP+50 174 IF DI(2)=5 THEN TP=TP+50 175 IF DI(3)=5 THEN TP=TP+50 176 IF DI(1)=6 THEN TP=TP+100 177 IF DI(2)=6 THEN TP=TP+100 178 IF DI(3)=6 THEN TP=TP+100 179 IF DI(1)<5 AND DI(2)<5 AND DI(3)<5 THEN TF=1 : TP=0 : RETURN 180 GOTO 188 181 ' 182 ' 183 ' 184 REM SCORING FOR 'TRIPLES' 185 X=DI(1)*100 186 IF X<500 THEN TP=0 : TP=TP-X : GOTO 188 187 TP=TP+X 188 IF TP<50 THEN TF=1 189 EG=PS(CO)+TP 190 IF EG>=1500 THEN GF=1 : GOTO 222 191 RETURN 192 ' 193 ' 194 ' 195 REM PRINT SCORES TO DATE 196 IF GF=0 THEN PRINT "GAME SCORE"; ELSE PRINT "FINAL SCORE"; 197 FOR X=1 TO P 198 PRINT TAB(15); PL$(X); TAB(27); PS(X) 199 NEXT X : PRINT 200 RETURN 201 ' 202 ' 203 ' 204 REM 'SEED' RANDOM NUMBER GENERATOR 205 FOR X1=1 TO LEN(PL$(X)) 206 A=A+ASC(MID$(PL$(X),X1,1)) 207 NEXT X1 208 A=A MOD 137 209 FOR X1=1 TO A 210 A1=RND(1) : A1=RND(-X1) 211 NEXT X1 : RETURN 212 ' 213 ' 214 ' 215 REM THIS DECIDES WHO WILL GO FIRST 216 X=INT(RND(1)*P)+1 217 PRINT CHR$(26) : PRINT PL$(X); ", YOU WILL START THIS GAME" : PRINT : PRINT 218 CO=X : RETURN 219 ' 220 ' 221 ' 222 REM WIN ROUTINE 223 PRINT CHR$(26) 224 PRINT TAB(22); "*** WINNER ***" : PRINT : PRINT : PRINT 225 PRINT TAB(12); PL$(CO); ", YOUR WINNING ROLL WAS "; 226 PRINT DI(1); DI(2); DI(3) : PRINT : PRINT : PRINT 227 PRINT TAB(12); PL$(CO); " WINS WITH"; PS(CO)+TP; "POINTS" : PRINT : PRINT : PRINT 228 PS(CO)=EG 229 GOSUB 195 230 A$="TRAP" : INPUT "ANOTHER GAME (Y OR N)"; A$ 231 IF LEFT$(A$,1)="Y" THEN RUN 106 232 IF LEFT$(A$,1)="N" THEN PRINT CHR$(26) : RESET : END 233 PRINT "NICE TRY "; : GOTO 230 234 ' 235 ' 236 ' 237 REM INSTRUCTIONS 238 PRINT CHR$(26) 239 PRINT TAB(20); "*** INSTRUCTIONS ***" : PRINT 240 PRINT "THREE DICE ARE ROLLED, AND ARE SCORED AS FOLLOWS:" : PRINT 241 PRINT " EACH '6' ROLLED SCORES 100 POINTS" 242 PRINT " EACH '5' ROLLED SCORES 50 POINTS" : PRINT 243 PRINT "FOR EXAMPLE: A ROLL OF '6 5 1' IS WORTH 150 POINTS - 100 POINTS" 244 PRINT "FOR THE '6' AND 50 POINTS FOR THE '5'; (NOTHING FOR THE '1')." : PRINT 245 PRINT "WHEN YOU ROLL 3 OF A KIND, THE SCORING IS AS FOLLOWS:" : PRINT 246 PRINT " THREE 1'S - 100 POINTS" 247 PRINT " THREE 2'S - 200 POINTS" 248 PRINT " THREE 3'S - 300 POINTS" 249 PRINT " THREE 4'S - 400 POINTS" 250 PRINT " THREE 5'S + 500 POINTS" 251 PRINT " THREE 6'S + 600 POINTS" : PRINT 252 PRINT "GET THE IDEA...?" : PRINT 253 PRINT "HIT RETURN MORE INSTRUCTIONS" : WAIT 0,1,1 254 PRINT CHR$(26) 255 PRINT "THE GAME CONSISTS OF THREE PHASES..." : PRINT 256 PRINT TAB(12); "PHASE 1 - WHO GOES FIRST" 257 PRINT TAB(12); "PHASE 2 - QUALIFYING (REACH 250 POINTS) PHASE" 258 PRINT TAB(12); "PHASE 3 - WHO WINS (REACHES 1500 POINTS FIRST)" : PRINT 259 PRINT "THE COMPUTER DECIDES WHO GOES FIRST, THEN THE COMPUTER WILL CONTINUE" 260 PRINT "TO ROLL FOR EACH PLAYER UNTIL THAT PLAYER REACHES 250 POINTS OR UNTIL" 261 PRINT "THAT PLAYER HAS A ROLL WITH NO '5' OR '6', AT WHICH POINT THE SCORE" 262 PRINT "FOR THAT PLAYER IS RESET TO ZERO (UNLESS TRIPLES LESS THAN FIVE ARE" 263 PRINT "THROWN - IN WHICH CASE THAT PLAYER'S SCORE MAY WELL GO BELOW ZERO)." 264 PRINT "IN THIS PHASE (2) EACH PLAYER WILL EITHER REACH (OR EXCEED) 250 OR" 265 PRINT "BE RESET TO ZERO (OR LESS). WHEN A PLAYER HAS QUALIFIED, PLAY PASSES" 266 PRINT "TO NEXT PLAYER. AFTER QUALIFYING, COMPUTER ROLLS ONCE, IF THAT ROLL" 267 PRINT "RESULTS IN SCORE LESS THAN 50, TURN WILL PASS TO NEXT PLAYER. IF THAT" 268 PRINT "PLAYER SCORES 50 (OR MORE) POINTS, THEN THAT PLAYER CAN DECIDE WHETHER" 269 PRINT "TO TAKE (AND KEEP) THE POINTS FROM THAT ROLL OR TO ROLL AGAIN IN HOPE" 270 PRINT "OF GETTING MORE POINTS. ANY ROLL OF LESS THAN 50 POINTS WILL CANCEL" 271 PRINT "ALL POINTS EARNED ON THAT TURN. FIRST PLAYER TO REACH 1500 WINS. IT" 272 PRINT "IS ONLY NECESSARY TO 'QUALIFY' ONCE IN ANY GIVEN GAME, AND SCORING" 273 PRINT "RELATED TO 'TRIPLES' IS IN EFFECT DURING ALL PHASES OF THE GAME." 274 PRINT : PRINT "HIT RETURN TO PLAY" : WAIT 0,1,1 275 RETURN ED TO 'TRIPLES' IS IN EFFECT DURING ALL PHASES OF THE GAME." 274 PRINT : PRINT "HIT RETURN TO PLAY"