Related Articles: Make-It-Yourself Quiz Program
Developer(s): Dale F Lipinski
Date: 198x
Type: Program
Platform(s): TS 1000
Appears on
Assembled by Tim Ward from many sources. Contains programs 10176 – 10210.
Source Code
1 REM %Q%U%I%Z% % % % % % % % % % % % % % % % % % % 2 REM %D%A%L%E% %F%.% %L%I%P%I%N%S%K%I% % % % % % % 3 REM %S%Y%N%T%A%X% %Q%U%A%R%T%E%R%L%Y% % % % % % % 4 REM %S%P%R%I%N%G% %1%9%8%3% % % % % % % % % % % % 10 LET S=0 20 FAST 30 LET B$="\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''% %E%N%T%E%R% %A%N%S%W%E%R% " 40 CLS 50 PRINT "WHAT TYPE OF QUIZ DO YOU WISH TOHAVE?",,"1 = MULTIPLE CHOICE","2 = TRUE OR FALSE","3 = DIRECT ANSWER",B$ 60 INPUT C$ 70 IF CODE C$<=28 OR CODE C$>=32 THEN GOTO 40 80 CLS 90 PRINT "HOW MANY QUESTIONS DO YOU WISH TO ASK?",,B$ 100 INPUT A 110 CLS 120 PRINT "DO YOU WISH TO EXPLAIN THE","ANSWER IF IT IS WRONG?","1 = YES",,"0 = NO",,B$ 130 INPUT D$ 140 IF CODE D$<=27 OR CODE D$>=30 THEN GOTO 110 160 IF D$="0" THEN LET H$=" " 170 CLS 180 LET D=4 190 IF C$="2" OR C$="3" THEN GOTO 230 200 PRINT "WHAT IS THE MAXIMUM NUMBER OF","CHOICES PER QUESTION?","LIMIT OF 9",,B$ 210 INPUT B 215 IF B>=10 THEN GOTO 170 220 LET D=B+4 230 LET E=42022 240 CLS 250 PRINT "YOU WILL HAVE ";A;" QUESTIONS","WITH A TOTAL CHARACTER INPUT OF",E;TAB 0;"AN AVERAGE OF ";E/A,"CHARACTERS PER QUESTION";TAB 0;"IF THIS IS OKAY ENTER 0","IF NOT ENTER 1",,B$ 260 INPUT E$ 270 IF CODE E$<=27 OR CODE E$>=29 THEN GOTO 40 280 DIM A(A+1,D) 281 DIM A$(10505,4) 282 LET L=PEEK 16400+256*PEEK 16401 283 POKE L+1,41 284 POKE L+2,164 285 POKE L+3,1 286 POKE L+4,38 287 POKE L+5,164 288 POKE L+6,0 300 LET A(1,1)=1 320 FOR F=1 TO A 330 CLS 340 PRINT "WHAT IS QUESTION NUMBER ";F;"?",B$ 350 INPUT E$ 360 PRINT E$;TAB 0;"INPUT 0 IF THIS IS CORRECT","INPUT 1 IF NOT CORRECT",B$ 370 INPUT F$ 380 IF CODE F$<=27 OR CODE F$>=29 THEN GOTO 330 390 LET H=LEN E$ 400 LET A(F,2)=A(F,1)+H 410 LET A$(A(F,1) TO A(F,1)+H)=E$ 420 CLS 430 PRINT "WHAT IS THE ANSWER?" 440 IF C$="2" THEN PRINT "1 = TRUE",,"0 = FALSE" 450 PRINT B$ 460 INPUT E$ 465 CLS 470 PRINT E$;TAB 0;"INPUT 0 IF THIS IS CORRECT","INPUT 1 IF NOT CORRECT",B$ 475 IF C$="2" AND E$="1" THEN PRINT AT 0,0;"1 = TRUE" 477 IF C$="2" AND E$="0" THEN PRINT AT 0,0;"0 = FALSE" 480 INPUT F$ 490 IF CODE F$<=27 OR CODE F$>=29 THEN GOTO 420 495 IF C$="1" THEN LET E$=" = "+E$ 500 LET H=LEN E$ 510 LET A(F,3)=A(F,2)+H 520 LET A$(A(F,2) TO A(F,2)+H)=E$ 530 IF CODE D$<=28 OR CODE D$>=3 THEN GOTO 600 540 CLS 550 PRINT "WHAT IS THE EXPLANATION","NO EXPLANATION INPUT A SPACE",B$ 560 INPUT H$ 565 CLS 570 PRINT H$;TAB 0;"INPUT 0 IF THIS IS CORRECT","INPUT 1 IF NOT CORRECT",B$ 580 INPUT F$ 590 IF CODE F$<=27 OR CODE F$>=29 THEN GOTO 540 600 LET H=LEN H$ 610 LET A(F,4)=A(F,3)+H 620 LET A$(A(F,3) TO A(F,3)+H)=H$ 630 IF CODE C$<=28 OR CODE C$>=30 THEN GOTO 750 640 FOR C=1 TO B 650 CLS 660 PRINT "WHAT IS THE NUMBER ";C;" CHOICE?","FOR NO CHOICE INPUT A SPACE",B$ 670 INPUT E$ 675 CLS 680 PRINT C;" = ";E$;TAB 0;"INPUT 0 IF THIS IS CORRECT","INPUT 1 IF NOT CORRECT",B$ 690 INPUT F$ 700 IF CODE F$<=27 OR CODE F$>=29 THEN GOTO 650 705 LET E$=CHR$ (C+28)+" = "+E$ 710 LET H=LEN E$ 720 LET A(F,4+C)=A(F,3+C)+H 730 LET A$(A(F,3+C) TO A(F,3+C)+H)=E$ 735 IF A$(A(F,2)+1 TO A(F,3)-1)=E$(2 TO ) THEN LET A$(A(F,2) TO A(F,2))=CHR$ (C+28) 740 NEXT C 750 LET A(F+1,1)=A(F,D) 760 NEXT F 770 CLS 780 PRINT "WHAT IS THE TITLE OF THE QUIZ?",B$ 790 INPUT I$ 795 CLS 800 PRINT I$;TAB 0;"INPUT 0 IF THIS IS CORRECT","INPUT 1 IF NOT CORRECT",B$ 810 INPUT F$ 820 IF CODE F$<=27 OR CODE F$>=29 THEN GOTO 770 830 CLS 840 PRINT "WHAT IS YOUR NAME PLEASE?",B$ 850 INPUT J$ 860 CLS 870 PRINT "THANK YOU ";J$;TAB 0;"GET READY FOR YOUR QUIZ" 880 PAUSE 400 890 CLS 900 PRINT TAB 10;"% %Z%X%-%8%1% %Q%U%I%Z% ";TAB 0;I$;TAB 0;"TAKEN BY ";J$ 910 PAUSE 400 920 FOR C=1 TO A 930 CLS 940 LET E$=A$(A(C,1) TO A(C,2)-1) 945 LET K$=A$(A(C,2) TO A(C,3)-1) 950 PRINT "QUESTION NUMBER ";C;TAB 0;E$;TAB 0;B$( TO 32) 955 IF C$="1" THEN LET K$=A$(A(C,2) TO A(C,2)) 960 IF C$="1" THEN FOR I=4 TO D-1 970 IF C$="1" THEN PRINT A$(A(C,I) TO A(C,I+1)-1) 980 IF C$="1" THEN NEXT I 990 IF C$="2" THEN PRINT "1 = TRUE",,"0 = FALSE" 1000 PRINT B$ 1010 INPUT F$ 1020 IF K$=F$ THEN PRINT "% %V%E%R%Y% %G%O%O%D% %T%H%A%T% %I%S% %C%O%R%R%E%C%T% " 1030 IF K$=F$ THEN PAUSE 400 1040 IF K$=F$ THEN LET S=S+1 1050 IF K$=F$ THEN GOTO 1150 1060 PRINT "% %I% %A%M% %S%O%R%R%Y% %T%H%A%T% %I%S% %N%O%T% %C%O%R%R%E%C%T% " 1070 PAUSE 400 1080 CLS 1090 PRINT "THE CORRECT ANSWER IS";TAB 0;A$(A(C,2) TO A(C,3)-1) 1100 IF C$="2" AND K$="1" THEN PRINT AT 1,0;"1 = TRUE" 1110 IF C$="2" AND K$="0" THEN PRINT AT 1,0;"0 = FALSE" 1120 PRINT A$(A(C,3) TO A(C,4)-1) 1130 PRINT "PRESS % %E%N%T%E%R% TO CONTINUE",B$ 1140 INPUT E$ 1150 NEXT C 1160 CLS 1170 PRINT "QUIZ IS COMPLETE. THANK YOU",J$;TAB 0,,"YOUR SCORE IS ";S;" % %C%O%R%R%E%C%T% ","OUT OF A POSSIBLE ";A;" QUESTIONS.";TAB 0;"YOUR GRADE AVERAGE IS ",S/A*100;" PER CENT" 1180 PAUSE 400 1190 PRINT AT 15,0;"DO YOU WISH TO SAVE THIS PROGRAM1 = NO",,"0 = YES",,B$ 1200 LET S=0 1210 INPUT F$ 1220 IF CODE F$<=27 OR CODE F$>=29 THEN GOTO 830 1230 SAVE "QUIZ-64K" 1240 GOTO 830 1250 SAVE "1018%9" 1260 RUN