home *** CD-ROM | disk | FTP | other *** search
/ Play and Learn 2 / 19941.ZIP / 19941 / EDUCLING / SPELLBEE / TELLTIME.BAS (.txt) < prev   
Encoding:
GW-BASIC  |  1994-02-04  |  2.3 KB  |  92 lines

  1. 100  ' TELLTIME written by Lloyd Onyett
  2. 110  ' of Chehalis, Washington
  3. 220  DEFINT A-Z:DEFSNG P
  4. 230  KEY OFF:SCREEN 1,0,0,0:COLOR 0,1
  5. 240  PI=3.14159
  6. 250  RANDOMIZE VAL(MID$(TIME$,7))
  7. 290  HR=RND*12 MOD 12+1
  8. 300  MIN=(HR+RND*11 MOD 11)MOD 12+1
  9. 340  CLS
  10. 350  CIRCLE (230,100),2,3
  11. 360  CIRCLE (230,100),80,1
  12. 370  H=(15-HR)MOD 12
  13. 380  HANGLE!=H*-2*PI/12+(MIN+12*(MIN>6))*PI/72
  14. 390  IF HANGLE!>0 THEN HANGLE!=HANGLE!-2*PI
  15. 400  CIRCLE (230,100),50,1,HANGLE!+0.02,HANGLE!-0.02
  16. 410  M=(15-MIN)MOD 12
  17. 420  MANGLE!=M*-2*PI/12
  18. 430  CIRCLE (230,100),70,2,MANGLE!+0.02+2*PI*(M=0),MANGLE!-0.02
  19. 470  LOCATE 2,17:PRINT "TELLTIME"
  20. 480  LOCATE 4,29:PRINT "12"
  21. 490  LOCATE 5,24:PRINT "11":LOCATE 5,35:PRINT "1"
  22. 500  LOCATE 9,19:PRINT "10":LOCATE 9,39:PRINT "2"
  23. 510  LOCATE 13,19:PRINT "9":LOCATE 13,40:PRINT "3"
  24. 520  LOCATE 17,20:PRINT "8":LOCATE 17,39:PRINT "4"
  25. 530  LOCATE 21,24:PRINT "7":LOCATE 21,35:PRINT "5"
  26. 540  LOCATE 22,30:PRINT "6"
  27. 580  C=RND*3 MOD 3+1
  28. 590  CH(C)=HR
  29. 600  CM(C)=MIN
  30. 610  D=(C+RND*2 MOD 2)MOD 3+1
  31. 620  CH(D)=MIN
  32. 630  CM(D)=HR
  33. 640  E=6-C-D
  34. 650  CH(E)=HR
  35. 660  CM(E)=12-MIN
  36. 670  IF CM(E) MOD 6=0 THEN CM(E)=CM(E)+6
  37. 710  LOCATE 6,1:PRINT "What time is it?"
  38. 720  FOR J=1 TO 3
  39. 730  LOCATE J*4+6,1
  40. 740  PRINT "("CHR$(64+J)")";
  41. 750  GOSUB 1270
  42. 760  NEXT
  43. 770  LOCATE 24,4:PRINT "hit key A, B, or C. (X to stop)";
  44. 780  RESP$=INKEY$:IF RESP$="" THEN 790 ELSE 800
  45. 790  FOR A=1 TO 300:NEXT:SOUND 18000,0.03:GOTO 780
  46. 800  LOCATE 24,1:PRINT SPC(39);
  47. 810  ANS=(ASC(RESP$) OR 32)-96
  48. 820  IF ANS=24 THEN 1390
  49. 830  IF ANS>0 AND ANS<4 THEN 950
  50. 870  LOCATE 24,1:PRINT "   A, B, or C, PLEASE!";
  51. 880  FOR J=1 TO 6
  52. 890  SOUND 50*(J MOD 2+1),5
  53. 900  NEXT
  54. 910  GOTO 770
  55. 950  CIRCLE (200,85),20,1-(ANS<>C),3*PI/8,5*PI/8
  56. 960  CIRCLE (260,85),20,1-(ANS<>C),3*PI/8,5*PI/8
  57. 970  IF ANS=C THEN 1120
  58. 1010  SOUND 40,40
  59. 1020  CIRCLE (230,200),80,1,(3*PI/8),(5*PI/8)
  60. 1030  LOCATE 23,1:PRINT SPC(6) CHR$(ANS+64);" is wrong"
  61. 1040  PRINT "the correct answer is "; CHR$(64+C);
  62. 1050  FOR J=1 TO 4000:NEXT
  63. 1070  NUMWRONG=NUMWRONG+1
  64. 1080  GOTO 290
  65. 1120  LOCATE 24,1
  66. 1130  J=0
  67. 1140  FLG=0
  68. 1150  PRINT "Correct!!!!";
  69. 1160  CIRCLE (230,100),50,2,(10*PI/8),(14*PI/8)
  70. 1170  FOR J=1000 TO 4000 STEP 80
  71. 1180  SOUND J,0.04
  72. 1190  NEXT
  73. 1200  FOR J=1 TO 2000
  74. 1210  NEXT
  75. 1220  NUMRIGHT=NUMRIGHT+1
  76. 1230  GOTO 290
  77. 1270  IF CM(J)=12 THEN 1340
  78. 1280  IF CM(J)<7 THEN CM5(J)=CM(J):CONNECT$="after" ELSE CM5(J)=12-CM(J):CONNECT$="to"
  79. 1290  CM5$=STR$(CM5(J)*5)
  80. 1300  PRINT RIGHT$(CM5$,LEN(CM5$)+FLG); " minutes ";
  81. 1310  IF NOT FLG THEN PRINT :PRINT SPC(5);
  82. 1320  PRINT CONNECT$;CH(J);
  83. 1330  GOTO 1350
  84. 1340  PRINT CH(J);"o'clock ";
  85. 1350  RETURN
  86. 1390  IF NUMRIGHT<NUMWRONG THEN 1410
  87. 1400  LOCATE 23,1:PRINT "Very good, you answered":GOTO 1420
  88. 1410  LOCATE 23,1:PRINT "Too bad, you answered"
  89. 1420  PRINT NUMRIGHT;" right and";NUMWRONG;"wrong.";
  90. 1430  LOCATE 1,1
  91. 1440  END
  92.