home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk061 / bearabc.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-08-10  |  7.2 KB  |  203 lines

  1. 10  '                     B E A R A B C . B A S    8/10/86 11:10 pm
  2. 20  '
  3. 30  '     BEARY FUN ABC'S will help associate each picture with the
  4. 40  '     letter and the keyboard key.  It displays the picture then
  5. 50  '     waits for the entry of the proper key.  If the key isn't 
  6. 60  '     pressed in 3 seconds, the letter will also be displayed on
  7. 70  '     the screen.  Each time the right key is pressed, a bear
  8. 80  '     is placed on the screen.
  9. 90  '
  10. 100  '    Modified for IBM-PC screen 1
  11. 110  '
  12. 120  '    Initialize all variables and arrays.
  13. 130  '
  14. 140  SCREEN 1 : COLOR 0,0 : CLS
  15. 150  LOCATE 6,1 : PRINT "Beary";
  16. 160  LOCATE 7,2 : PRINT "Fun"; : LOCATE 12,1 : PRINT "Letters";
  17. 170  LOCATE 24,1 : PRINT "  copyright 1985, Computing Specialties";
  18. 180  '
  19. 190  '
  20. 200  '         Poke subroutine ALOAD into memory.
  21. 210  '
  22. 220  DEF SEG : ALOAD= 48000
  23. 230  FOR IB=0 TO  95 : READ BYTE : POKE ALOAD+IB,BYTE : NEXT IB
  24. 240  DATA &H55, &H8B, &HEC, &H8B, &H5E, &H0A, &H8A, &H0F, &HB5, &H00, &H8B, &H77
  25. 250  DATA &H01, &H8B, &H5E, &H08, &H8B, &H07, &H8E, &HC0, &HBF, &H00, &H00, &HA4
  26. 260  DATA &HE2, &HFD, &HB0, &H00, &HAA, &H1E, &H06, &H1F, &H07, &HB0, &H00, &HB4
  27. 270  DATA &H3D, &HBA, &H00, &H00, &HCD, &H21, &H72, &H24, &H8B, &HD8, &HB9, &H07
  28. 280  DATA &H00, &HBA, &H00, &H00, &HB4, &H3F, &HCD, &H21, &H3B, &HC1, &H74, &H05
  29. 290  DATA &HB8, &H0D, &H00, &H75, &H0F, &HBE, &H05, &H00, &H8B, &H0C, &HB4, &H3F
  30. 300  DATA &HBA, &H00, &H00, &HCD, &H21, &HB8, &H00, &H00, &H8B, &H7E, &H06, &H26
  31. 310  DATA &H89, &H05, &HB4, &H3E, &HCD, &H21, &H06, &H1F, &H5D, &HCA, &H06, &H00
  32. 320  '
  33. 330  '           Load the title picture onto the screen.
  34. 340  '
  35. 350  SEG2%=&HB800 : BERR%=0 : FILE$="BEARABC1.PIC" : CALL ALOAD(FILE$,SEG2%,BERR%)
  36. 360  UP$=CHR$(0)+CHR$(72) : DN$=CHR$(0)+CHR$(80)
  37. 370  LT$=CHR$(0)+CHR$(75) : RT$=CHR$(0)+CHR$(77)
  38. 380  DIM A(150),B(150),C(150),D(150),E(150),F(150),G(150),H(150),I(150),J(150)
  39. 390  DIM K(150),L(150),M(150),N(150),O(150),P(150),Q(150),R(150),S(150),T(150)
  40. 400  DIM U(150),V(150),W(150),X(150),Y(150),Z(150),BEAR(150)
  41. 410  DIM XTL(28),YTL(28),XBR(28),YBR(28),LETTER(30),ALPHA(4)
  42. 420  DIM N$(40),T$(14)
  43. 430  FOR I=1 TO 7
  44. 440      XTL(I)=23+I*32 : XBR(I)=58+I*32 : YTL(I)=10 : YBR(I)=39
  45. 450      XTL(I+7)=23+I*32 : XBR(I+7)=58+I*32 : YTL(I+7)=50 : YBR(I+7)=79
  46. 460      XTL(I+14)=23+I*32 : XBR(I+14)=58+I*32 : YTL(I+14)=90 : YBR(I+14)=119
  47. 470      XTL(I+21)=20+I*35 : XBR(I+21)=55+I*35 : YTL(I+21)=140 : YBR(I+21)=169
  48. 480  NEXT I
  49. 490  XTL(6)=218 : XBR(22)=89 : XBR(19)=217 : XTL(21)=250 : XBR(26)=232
  50. 500  RANDOMIZE TIMER
  51. 510  '
  52. 520  '           Sort the letters into random order for a new game.
  53. 530  '
  54. 540  FOR I=1 TO 26 : LETTER(I)=I : NEXT I
  55. 550  LETTER(27)=INT(RND*26)+1 : LETTER(28)=INT(RND*26)+1
  56. 560  FOR I=1 TO 100
  57. 570      J=INT(RND*26)+1 : K=INT(RND*26)+1
  58. 580      T=LETTER(J) : LETTER(J)=LETTER(K) : LETTER(K)=T
  59. 590  NEXT I
  60. 600  '
  61. 610  '           Load the pictures and store each one in an array.
  62. 620  '
  63. 630  FOR I=1 TO 7
  64. 640      ON I GOTO 650,700,750,800,850,900,940
  65. 650      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),A
  66. 660      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),H
  67. 670      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),O
  68. 680      GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),V
  69. 690      GOTO 970
  70. 700      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),B
  71. 710      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),I
  72. 720      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),P
  73. 730      GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),W
  74. 740      GOTO 970
  75. 750      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),C
  76. 760      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),J
  77. 770      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),Q
  78. 780      GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),X
  79. 790      GOTO 970
  80. 800      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),D
  81. 810      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),K
  82. 820      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),R
  83. 830      GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Y
  84. 840      GOTO 970
  85. 850      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),E
  86. 860      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),L
  87. 870      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),S
  88. 880      GET (XTL(I+21),YTL(I+21))-(XBR(I+21),YBR(I+21)),Z
  89. 890      GOTO 970
  90. 900      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),F
  91. 910      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),M
  92. 920      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),T
  93. 930      GOTO 970
  94. 940      GET (XTL(I),YTL(I))-(XBR(I),YBR(I)),G
  95. 950      GET (XTL(I+7),YTL(I+7))-(XBR(I+7),YBR(I+7)),N
  96. 960      GET (XTL(I+14),YTL(I+14))-(XBR(I+14),YBR(I+14)),U
  97. 970  NEXT I
  98. 980  GET (10,59)-(32,84),BEAR
  99. 990  '
  100. 1000  '           Prepare for a new game.
  101. 1010  '
  102. 1020  CLS
  103. 1030  N=0 : NB=0
  104. 1040  LINE (0,0)-(319,199),2,B
  105. 1050  LINE (30,30)-(289,169),2,B
  106. 1060  LINE (31,31)-(288,168),0,BF
  107. 1070  '
  108. 1080  '           Pick the next letter and display the picture on the screen.
  109. 1090  '
  110. 1100  N=N+1 : K=LETTER(N) : X=150 : Y=90 : GOSUB 1750
  111. 1110  U$=CHR$(K-1+ASC("A")) : L$=CHR$(K-1+ASC("a"))
  112. 1120  WT=0
  113. 1130  '
  114. 1140  '           Wait until the proper key is pressed.
  115. 1150  '           If WT gets to 150, display the letters on the screen.
  116. 1160  R$=INKEY$
  117. 1170  WT=WT+1 : IF WT=150 THEN LOCATE 10,19 : PRINT U$;" ";L$ : WT=0
  118. 1180  IF R$=CHR$(27) THEN RUN"MENU
  119. 1190  IF R$<>L$ AND R$<>U$ THEN 1160
  120. 1200  '
  121. 1210  '           The correct key was pressed, put a bear face on the border.
  122. 1220  '
  123. 1230  NB=NB+1
  124. 1240  XB=(NB-1)*32+3 : YB=3
  125. 1250  IF NB>10 THEN XB=292 : YB=(NB-10)*35+3
  126. 1260  IF NB>14 THEN XB=3 : YB=(NB-14)*35+3
  127. 1270  IF NB>18 THEN YB=173 : XB=(NB-19)*32+3
  128. 1280  PUT (XB,YB),BEAR,PSET
  129. 1290  SOUND 115+NB*5,1 : SOUND 350+NB*5,1 : SOUND 756+NB*5,1 : SOUND 1036+NB*5,1 : SOUND 1435+NB*5,1
  130. 1300  IF NB<28 THEN GOTO 1060
  131. 1310  '
  132. 1320  '           The border is filled with bears, congratulate the kid.
  133. 1330  '
  134. 1340  LOCATE 10,16:PRINT "YAY  ";N$;"!"
  135. 1350  SOUND 115+NB*5,1:SOUND 350+NB*5,1:SOUND 756+NB*5,1:SOUND 1036+NB*5,1:SOUND 1435+NB*5,1
  136. 1360  LOCATE 16,16:PRINT "YOU DID IT!"
  137. 1370  FOR T=1 TO 10 : SOUND 1435,1 : SOUND 1100,1 : NEXT T
  138. 1380  FOR I=1 TO 3000 : NEXT I
  139. 1390  R$=INKEY$ : IF R$<>"" THEN 1390
  140. 1400  '
  141. 1410  '          End the game by playing the alphabet song.
  142. 1420  '
  143. 1430  CLS
  144. 1440  LINE (0,0)-(319,199),2,B : LINE (0,35)-(319,35),2
  145. 1450  DATA C4,C4,E4,E4,G4,G4,E2,F4,F4,E4,E4,D8,D8,D8,D8,C2
  146. 1460  DATA C4,C4,E2,G4,G4,E2,F8F8F4,E2,D4D4,C2
  147. 1470  DATA C4,NOW,C4,I'VE,E4,SAID,E4,MY,G4,A,G4,B,E2,C'S.
  148. 1480  DATA F4,WILL,F4,YOU,E4,COME,E4,AND,D4,PLAY,D4,WITH,C2,ME?
  149. 1490  IF N$(1)<>"" THEN GOTO 1520
  150. 1500  FOR K=1 TO 26 : READ N$(K) : NEXT K
  151. 1510  FOR K=27 TO 40 : READ N$(K),T$(K-26) : NEXT K
  152. 1520  FOR K=1 TO 26
  153. 1530    Y=INT(K/7)*40+50: X=(K MOD 7)*40+20
  154. 1540    GOSUB 1750
  155. 1550    IF K>20 THEN LINE (0,199)-(319,199),2
  156. 1560    R=INT(K/7)*5+6 : C=(K MOD 7)*5+4 : LOCATE R,C
  157. 1570    PRINT CHR$(ASC("A")+K-1);" ";CHR$(ASC("a")+K-1);
  158. 1580    PLAY "MFO3"+N$(K)
  159. 1590  NEXT K
  160. 1600  LINE (0,199)-(319,199),2
  161. 1610  LINE (1,1)-(318,34),0,BF
  162. 1620  FOR N=2 TO 3
  163. 1630    LOCATE N,5
  164. 1640    FOR K=1 TO 7
  165. 1650      NK=K+(N-2)*7
  166. 1660      PRINT T$(NK);" "; : PLAY "MFO3"+N$(NK+26)
  167. 1670    NEXT K
  168. 1680  NEXT N
  169. 1690  LINE (1,1)-(318,34),0,BF
  170. 1700  LOCATE 3,5
  171. 1710  FOR I=1 TO 3000 : NEXT I
  172. 1720  GOTO 1020
  173. 1730  REM ---------- SUBROUTINE PLOT PICTURE AT (X,Y) FOR LETTER NUMBER K ----------
  174. 1740  '
  175. 1750      IF K<13 THEN ON K GOTO 1770,1780,1790,1800,1810,1820,1830,1840,1850,1860,1870,1880
  176. 1760      ON K-12 GOTO 1890,1900,1910,1920,1930,1940,1950,1960,1970,1980,1990,2000,2010,2020
  177. 1770      PUT (X,Y),A,PSET : RETURN
  178. 1780      PUT (X,Y),B,PSET : RETURN
  179. 1790      PUT (X,Y),C,PSET : RETURN
  180. 1800      PUT (X,Y),D,PSET : RETURN
  181. 1810      PUT (X,Y),E,PSET : RETURN
  182. 1820      PUT (X,Y),F,PSET : RETURN
  183. 1830      PUT (X,Y),G,PSET : RETURN
  184. 1840      PUT (X,Y),H,PSET : RETURN
  185. 1850      PUT (X,Y),I,PSET : RETURN
  186. 1860      PUT (X,Y),J,PSET : RETURN
  187. 1870      PUT (X,Y),K,PSET : RETURN
  188. 1880      PUT (X,Y),L,PSET : RETURN
  189. 1890      PUT (X,Y),M,PSET : RETURN
  190. 1900      PUT (X,Y),N,PSET : RETURN
  191. 1910      PUT (X,Y),O,PSET : RETURN
  192. 1920      PUT (X,Y),P,PSET : RETURN
  193. 1930      PUT (X,Y),Q,PSET : RETURN
  194. 1940      PUT (X,Y),R,PSET : RETURN
  195. 1950      PUT (X,Y),S,PSET : RETURN
  196. 1960      PUT (X,Y),T,PSET : RETURN
  197. 1970      PUT (X,Y),U,PSET : RETURN
  198. 1980      PUT (X,Y),V,PSET : RETURN
  199. 1990      PUT (X,Y),W,PSET : RETURN
  200. 2000      PUT (X,Y),X,PSET : RETURN
  201. 2010      PUT (X,Y),Y,PSET : RETURN
  202. 2020      PUT (X,Y),Z,PSET : RETURN
  203.