home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / basic / trivia.lbr / TRIVIA.BQS / TRIVIA.BAS
Encoding:
BASIC Source File  |  1986-10-15  |  6.0 KB  |  164 lines

  1. 8 REM
  2. 9 REM
  3. 10 REM THIS PROGRAM WAS WRITTEN BY JOUBERT BERGER USING MBASIC VER 5.26
  4. 20 REM I GOT THE IDEA FROM A GAME I PLAYED ON THE GEORGIA TECH
  5. 30 REM COMPUTER(CYBER).
  6. 40 REM NOTE: *****  MAKE SURE YOU HAVE THE DATA FILE ON THE SAME DISK AS 
  7. 50 REM       *****  TRIVIA.  I RUN TRIVIA AND THE DATA FILE IN DRIVE B:
  8. 60 REM       *****  AND MBASIC IN DRIVE A:
  9. 70 REM 
  10. 80 REM I THINK THAT AN ERROR WILL OCCUR AFTER THERE ARE MORE THAN 128 QUESTIONS
  11. 90 REM IN THE DATA FILE
  12. 91 REM
  13. 92 REM
  14. 100 DEFINT A-Z
  15. 110 PRINT CHR$(26)
  16. 120 FOR R=1 TO 4:PRINT:NEXT
  17. 130 PRINT TAB(28);"THE QUESTION GAME"
  18. 140 PRINT TAB(19);"MATCH YOUR WITS AGAINST THE COMPUTER"
  19. 150 FOR R=1 TO 5:PRINT:NEXT
  20. 160 PRINT"YOU WILL BE ASKED A QUESTION AND YOU HAVE TO DECIDE WHICH IS THE CORRECT"
  21. 170 PRINT"ANSWER.  YOU MAY END THE GAME BY TYPING A 'Q' OR UNTIL THERE ARE NO MORE "
  22. 180 PRINT"QUESTIONS.  WHEN YOU ARE DONE YOU WILL BE ASKED TO ENTER IN A QUESTION ":PRINT"WHICH THE COMPUTER WILL USE AT A LATER TIME."
  23. 190 FOR R=1 TO 9 :PRINT:NEXT
  24. 200 PRINT"HIT ANY KEY TO CONTINUE";
  25. 210 A$=INKEY$:X=RND(1):IF A$="" THEN 210
  26. 220 OPEN"R",#1,"B:RANDISK.DAT"
  27. 230 T=LOF(1):NU$="":CO=T
  28. 240 GOSUB 1450
  29. 250 JJ=0
  30. 260 FIELD #1,47 AS QU$, 20 AS A1$,20 AS A2$,20 AS A3$,20 AS A4$,1 AS AN$
  31. 270 PRINT CHR$(26)
  32. 280 GOSUB 1510
  33. 290 PRINT CHR$(26)
  34. 300 GET #1,X
  35. 310 CO=CO-1
  36. 320 PRINT TAB(58);CO;"QUESTIONS LEFT"
  37. 330 PRINT QU$      
  38. 340 PRINT
  39. 350 PRINT "A>  ";A1$
  40. 360 PRINT "B>  ";A2$
  41. 370 PRINT "C>  ";A3$
  42. 380 PRINT "D>  ";A4$
  43. 390 PRINT
  44. 400 PRINT"ENTER THE CORRECT LETTER FOR THE ANSWER ";
  45. 410 A$=INKEY$:M=RND(1)
  46. 420 IF A$="" THEN 410
  47. 430 IF LEFT$(A$,1)="Q" THEN 520
  48. 440 IF A$="A" OR A$="B" OR A$="C" OR A$="D" THEN 450 ELSE PRINT"   NOT ONE OF THE CHOICES";:PRINT CHR$(11);:GOTO 400
  49. 450 IF A$=AN$ THEN II=II+1:PRINT"    CORRECT               ";:I=0:FOR R=1 TO 300:NEXT:GOTO 510
  50. 460 PRINT CHR$(7);"   INCORRECT             ";:FOR R=1 TO 300:NEXT
  51. 470 PRINT CHR$(11);
  52. 480 I=I+1
  53. 490 IF I=2 THEN I=0:P=P+1:GOTO 510
  54. 500 GOTO 400
  55. 510 GOTO 270
  56. 520 PRINT:PRINT:PRINT
  57. 530 PRINT"YOU HAVE ANSWERED";II;"QUESTIONS CORRECTLY"
  58. 540 PRINT"YOU ANSWERED";P;" QUESTIONS INCORRECTLY"
  59. 550 W=(II/(P+II))*100
  60. 560 PRINT
  61. 570 PRINT"THAT MEANS YOU SCORED";W;"%"
  62. 580 PRINT:PRINT
  63. 590 PRINT"NOW IT IS YOUR TURN TO ENTER A QUESTION TO MY LIST"
  64. 600 INPUT"TYPE <RETURN> TO CONTINUE",L
  65. 610 PRINT CHR$(26)
  66. 620 PRINT"I HAVE";T;"QUESTIONS AT THIS PRESENT TIME":PRINT
  67. 630 PRINT
  68. 640 PRINT"ENTER THE QUESTION                        (NO LONGER THAN 47 CHAR)"
  69. 650 INPUT NQ$
  70. 660 IF NQ$="" THEN 960
  71. 670 IF LEN(NQ$)>47 THEN PRINT CHR$(7)CHR$(11);:GOTO 650
  72. 680 PRINT
  73. 690 PRINT"ENTER THE FOUR CHOICES FOR THE ANSWERS   (NO LONGER THAN 20 CHAR)"
  74. 700 INPUT"A>  ",NA1$
  75. 710 IF NA1$="" THEN 960
  76. 720 IF LEN(NA1$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 700
  77. 730 INPUT"B>  ",NA2$
  78. 740 IF NA2$="" THEN 960
  79. 750 IF LEN(NA2$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 730
  80. 760 INPUT"C>  ",NA3$
  81. 770 IF NA3$="" THEN 960
  82. 780 IF LEN(NA3$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 760
  83. 790 INPUT"D>  ",NA4$
  84. 800 IF NA4$="" THEN 960
  85. 810 IF LEN(NA4$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 790
  86. 820 PRINT
  87. 830 PRINT"ENTER THE CORRECT ANSWER                 (NO LONGER THAN  1 CHAR)"
  88. 840 INPUT NAN$
  89. 850 IF LEN(NAN$)=1 THEN 860 ELSE PRINT CHR$(7)CHR$(11);:GOTO 840
  90. 860 PRINT
  91. 870 GOSUB 1130
  92. 880 T=T+1
  93. 890 LSET QU$=NQ$
  94. 900 LSET A1$=NA1$
  95. 910 LSET A2$=NA2$
  96. 920 LSET A3$=NA3$
  97. 930 LSET A4$=NA4$
  98. 940 LSET AN$=NAN$
  99. 950 PUT #1,T
  100. 960 PRINT
  101. 970 PRINT"I NOW HAVE";T;"QUESTIONS"
  102. 980 PRINT
  103. 990 PRINT"ENTER ONE OF THE FOLLOWING CHOICES"
  104. 1000 PRINT"1>  STAR THE QUESTION GAME OVER"
  105. 1010 PRINT"2>  ENTERED ANOTHER QUESTION"
  106. 1020 PRINT"3>  END"
  107. 1030 PRINT:INPUT U
  108. 1040 JJ=0
  109. 1050 ON U GOTO 1430,610,1060
  110. 1060 CLOSE #1:END
  111. 1070 ON ERROR GOTO 1080
  112. 1080 RESUME 1090
  113. 1090 PRINT CHR$(26)
  114. 1100 PRINT"THOSE ARE ALL THE QUESTIONS THAT I HAVE"
  115. 1110 PRINT:PRINT:PRINT
  116. 1120 GOTO 530
  117. 1130 PRINT CHR$(26)
  118. 1140 PRINT"PLEASE CHECK TO SEE IF THIS IS WHAT YOU WANT"
  119. 1150 PRINT:PRINT:PRINT
  120. 1160 PRINT NQ$
  121. 1170 PRINT
  122. 1180 PRINT"A>  ";NA1$
  123. 1190 PRINT"B>  ";NA2$
  124. 1200 PRINT"C>  ";NA3$
  125. 1210 PRINT"D>  ";NA4$
  126. 1220 PRINT:PRINT"THE CORRECT ANSWER IS  *** ";NAN$;" ***"
  127. 1230 PRINT:INPUT"ARE THERE ANY MISTAKES ";M$
  128. 1240 IF LEFT$(M$,1)="Y" THEN 1260
  129. 1250 RETURN
  130. 1260 PRINT
  131. 1270 PRINT"ENTER 'Q' TO CHANGE THE QUESTION"
  132. 1280 PRINT"      'A' TO CHANGE THE FIRST ANSWER"
  133. 1290 PRINT"      'B' TO CHANGE THE SECOND ANSWER"
  134. 1300 PRINT"      'C' TO CHANGE THE THIRD QUESTION"
  135. 1310 PRINT"      'D' TO CHANGE THE FORTH QUESTION"
  136. 1320 PRINT"      'R' TO CHANGE THE ANSWER"
  137. 1330 PRINT
  138. 1340 INPUT"ENTER ONE OF THE ABOVE ",M$
  139. 1350 IF M$= "Q" OR M$ ="A" OR M$ ="B" OR M$ ="C" OR M$ ="D" OR M$ ="R" THEN 1360ELSE 1350
  140. 1360 IF M$="Q" THEN PRINT"REENTER THE QUESTION            (NO LONGER THAN 47 CHAR)":INPUT NQ$:IF LEN(QN$)>47 THEN PRINT CHR$(7)CHR$(11);:GOTO 1360
  141. 1370 IF M$="A" THEN PRINT"REENTER THE FIRST ANSWER        (NO LONGER THAN 20 CHAR)":INPUT NA1$:IF LEN(NA1$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 1370
  142. 1380 IF M$="B" THEN PRINT"REENTER THE SECOND QUESTION     (NO LONGER THAN 20 CHAR)":INPUT NA2$:IF LEN(NA2$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 1380
  143. 1390 IF M$="C" THEN PRINT"REENTER THE THIRD ANSWER        (NO LONGER THAN 20 CHAR)":INPUT NA3$:IF LEN(NA3$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 1390
  144. 1400 IF M$="D" THEN PRINT"REENTER THE FOURTH ANSWER       (NO LONGER THAN 20 CHAR)":INPUT NA4$:IF LEN(NA4$)>20 THEN PRINT CHR$(7)CHR$(11);:GOTO 1400
  145. 1410 IF M$="R" THEN PRINT"REENTER THE CORRECT ANSWER      (NO LONGER THAN 1 CHAR)":INPUT NAN$:IF LEN(NAN$)<>1 THEN PRINT CHR$(7)CHR$(11);:GOTO 1410
  146. 1420 GOTO 1130
  147. 1430 II=0:I=0:JJ=0 
  148. 1440 GOTO 230
  149. 1450 FOR X=1 TO T
  150. 1460 DS$=MID$(STR$(X),2,2):IF LEN(DS$)=1 THEN DS$="0"+DS$
  151. 1470 NU$=NU$+DS$:NEXT
  152. 1480 I$=NU$:Y=LEN(I$)
  153. 1490 RETURN
  154. 1500 '***************************************************
  155. 1510 N=Y/2-1:IF N<0 THEN 520
  156. 1520 X=INT(RND(1)*N)+1
  157. 1530 NU$=MID$(I$,X+X-1,2)
  158. 1540 A$=LEFT$(I$,X+X-2):O=LEN(A$)
  159. 1550 I$=A$+MID$(I$,X+X+1,Y-(O+2)):Y=LEN(I$)
  160. 1560 X=VAL(NU$)
  161. 1570 RETURN
  162. ID$(I$,X+X-1,2)
  163. 1540 A$=LEFT$(I$,X+X-2):O=LEN(A$)
  164. 1550 I$=A$+MID$