1 ! PROGRAM NAME --> B L A S T O -- BY BOB HUNTSMAN 12 OPEN "KB:"AS FILE 1%:FIELD #1%,K% AS Q$,1% AS M3$(K%) FOR K%=0% TO 10% 20 RANDOMIZE 50 DIM C%(90%),C1%(120%),N$(10%) 90 V9$=SYS(CHR$(3%)):PRINT "NUMBER OF ROUNDS? ";:GOSUB 750:H1%=D%: PRINT:PRINT "NUMBER OF PLAYERS? ";:GOSUB 750:N%=D%-1%: PRINT:V9$=SYS(CHR$(2%)):FOR K%=0% TO N% 110 PRINT "PLAYER #";K%+1%;"'S NAME";:INPUT N$(K%):NEXT K% 115 V9$=SYS(CHR$(3%)) 120 PRINT "NUMBER OF ANSWER SHEETS? ";:GOSUB 750:N1%=D%:PRINT: PRINT 130 GOSUB 800 FOR K%=1% TO N1%:GOSUB 900 FOR K%=0% TO N% 135 V9$=SYS(CHR$(3%)) 140 FOR H%=1% TO H1%:PRINT:PRINT "ROUND";H%:PRINT:PRINT 144 FOR K%=0% TO N%:FOR J%=0% TO 9%:C1%(K%*12%+C%(K%*12%+J%))=J%: NEXT J%:C1%(K%*12%+11%)=0%:NEXT K% 145 A%=FNR%(6%):B%=FNR%(6%):PRINT:PRINT "THE DICE ARE";A%;"AND"; B%:PRINT 150 Y%=0%:FOR K%=0% TO N%:IF C1%(K%*12%+11%)<0% THEN Y%=Y%+1%: GOTO 190 160 GOTO 190 IF C1%(K%*12%+J%)+1%=A%+B% FOR J%=0% TO 9% 170 GOTO 190 IF C1%(K%*12%+J%)++C1%(K%*12%+L%)+2%=A%+B% FOR L%=J%+1% TO 9% FOR J%=0% TO 9% 180 C1%(K%*12%+11%)=-3%:Y%=Y%+1% 190 NEXT K%:GOTO 300 IF Y%=N%+1% 210 GOSUB 1000:FOR K1%=0% TO N%:K%=R%(K1%) 220 IF C1%(K%*12%+11%)=-3% THEN C1%(K%*12+11%)=-2%: PRINT N$(K%);" -- YOU ARE OUT!!!!!!!!":GOTO 290 225 GOTO 290 IF C1%(K%*12%+11%)<0% 230 PRINT N$(K%);" -- WHICH ONES? ";:GOSUB 700:PRINT TAB(28%); 240 Z%=LEN(A$):Y%=0%:FOR J%=1% TO Z%: C%=ASCII(MID(A$,J%,1%))-65% 250 GOTO 610 IF C1%(K%*12%+C%)<0% 260 Y%=Y%+1%+C1%(K%*12%+C%):NEXT J%:GOTO 620 IF Y%<>A%+B% 262 FOR J%=1% TO Z%:C%=ASCII(MID(A$,J%,1%)) 265 C1%(K%*12%+C%-65%)=-99%:NEXT J% 280 PRINT "OK, ";N$(K%) 290 NEXT K1%:GOTO 145 300 PRINT FOR K%=1% TO 5%: PRINT "THIS ROUND IS OVER! THE SCORES ARE:":PRINT 310 FOR K%=0% TO N%:PRINT N$(K%);" --";:Y%=0% 320 Y%=Y%+C1%(K%*12%+J%)+1% IF C1%(K%*12%+J%)>-1% FOR J%=0% TO 9% 325 C1%(K%*12%+10%)=C1%(K%*12%+10%)+Y% 330 PRINT Y%;:PRINT "FOR A TOTAL OF";C1%(K%*12%+10%) IF H%>1%:PRINT IF H%=1%:NEXT K%:PRINT :PRINT:NEXT H% 350 PRINT "END OF GAME":PRINT:PRINT:PRINT:PRINT:PRINT: GOTO 32767 610 PRINT "SORRY -- YOU ALREADY USED THAT ONE!!": GOTO 230 620 PRINT "SORRY -- THOSE DO NOT ADD UP RIGHT!":GOTO 230 630 DEF FNR%(V%) 635 V1%=INT(1000*RND(0%)):V1%=V1%-(V1%/V%)*V%+1%:FNR%=V1% 640 FNEND 700 A$="":FOR K9%=1% TO 2% 710 GOSUB 29000:IF M4$=CHR$(32%) THEN GOTO 710 IF A$="": K9%=5%:GOTO 730 720 GOTO 710 IF M4$<"A" OR M4$>"J":PRINT M4$;:A$=A$+M4$ 730 NEXT K9%:RETURN 750 GOSUB 29000:D%=ASCII(M4$)-48%:GOTO 750 IF D%<0% OR D%>9%: PRINT M4$;:RETURN 800 FOR L%=1% TO H1%:PRINT J%;" ";FOR J%=1% TO 10%:PRINT:PRINT: NEXT L% 820 PRINT "HIT RETURN AFTER YOU RIP OFF YOUR SHEET --> ";: GOSUB 29000:PRINT:RETURN 900 PRINT "CODE SHEET FOR ";N$(K%):PRINT: PRINT:FOR J%=0% TO 9% 910 C%(K%*12%+J%)=FNR%(10%)-1%:GOTO 910 IF C%(K%*12%+J%)=C%(K%*12%+L%) FOR L%=0% TO J%-1%: NEXT J% 930 PRINT J%+1%;"-- ";CHR$(65%+C%(K%*12%+J%))+" "; FOR J%=0% TO 4%:PRINT:PRINT 935 PRINT J%+1%;"-- ";CHR$(65%+C%(K%*12%+J%))+" "; FOR J%=5% TO 8% 940 PRINT "10 -- ";CHR$(65%+C%(K%*12%+9%)):PRINT 950 PRINT "HIT RETURN AFTER YOU RIP OF YOUR SHEET ---> ";: GOSUB 29000:PRINT:RETURN 1000 FOR K%=0% TO N% 1010 R%(K%)=FNR%(N%+1%)-1%:GOTO 1010 IF R%(K%)=R%(J%) FOR J%=0% TO K%-1% 1020 NEXT K%:RETURN 29000 GOTO 29100 IF M3%=Z3%:M4$=M3$(M3%):M3%=M3%+1%: GOTO 29000 IF M4$=CHR$(10%):RETURN 29100 M3%=0%:V9$=SYS(CHR$(4%)):GET #1%:Z3%=RECOUNT:GOTO 29000 32767 CLOSE K% FOR K%=1% TO 12%:V9$=SYS(CHR$(2%)):END