home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 11 / Amoszine 11 (Disk 2 of 2).adf / Loads_Of_Source.lha / cavl.amos / cavl.amosSourceCode
Encoding:
AMOS Source Code  |  1980-08-03  |  2.1 KB  |  100 lines

  1. 20
  2. Rem ** Vocabulary Builder Program ** 
  3. Rem ** By Josh Hale               ** 
  4. Dim VERBS$(100)
  5. Dim NOUNS$(100)
  6. Dim ADJECTIVES$(100)
  7. Dim WORDL(50)
  8. Dim CHECKLIST(50)
  9. On Error Goto 20
  10. SPACES$=" "
  11. VERB$="ING"
  12. ADJECTIVE$="LY"
  13. VPOS=0
  14. NPOS=0
  15. APOS=0
  16. Curs Off 
  17. Flash Off 
  18. Hide On 
  19. Palette $0,$0,$F00,$FFF,$F0,$F
  20. Cls 
  21. Wind Open 1,0,16,37,23,1
  22. Curs Off 
  23. Pen 3
  24. Print "Welcome to CAVL V1.0"
  25. 1 Pen 4
  26. Curs Off 
  27. Input "> ";WRIT$
  28. HUMAN$=" "
  29. HUMAN$=HUMAN$+WRIT$
  30. HUMAN$=Upper$(HUMAN$)
  31. WORDS=-1
  32. WORDP=1
  33. VERBP=1
  34. ADJECTIVEP=1
  35. For A=0 To 50
  36. WORDL(A)=0
  37. Next A
  38. WORDLPOS=0
  39. 2
  40. WORDC=Instr(HUMAN$,SPACES$,WORDP)
  41. WORDP=WORDC+1
  42. WORDS=WORDS+1
  43. If WORDC=0 Then Goto 3
  44. WORDL(WORDLPOS)=WORDC
  45. WORDLPOS=WORDLPOS+1
  46. Goto 2
  47. 3
  48. A=WORDL(WORDS-1)
  49. WORDL(WORDS)=Len(HUMAN$)+1
  50. WORDL(WORDS+1)=A
  51. 4
  52. Rem **check for verbs**
  53. For A=0 To 50
  54. CHECKLIST(A)=0
  55. Next A
  56. For A=0 To WORDS-1
  57. BLOB=Instr(HUMAN$,VERB$,WORDL(A))
  58. If BLOB<>0 and BLOB<WORDL(A+1) Then CHECKLIST(A)=1
  59. Next A
  60. For A=0 To WORDS-1
  61. AFIRM=0
  62. If CHECKLIST(A)=1 Then VERBIN$=Mid$(HUMAN$,WORDL(A),WORDL(A+1)-WORDL(A)) : AFIRM=1
  63. If AFIRM=1 Then VERBS$(VPOS)=VERBIN$ : VPOS=VPOS+1
  64. If VPOS>98 Then VPOS=98
  65. Next A
  66. Rem **check for adjectives** 
  67. For A=0 To WORDS-1
  68. BLOB=Instr(HUMAN$,ADJECTIVE$,WORDL(A))
  69. If BLOB<>0 and BLOB<WORDL(A+1) Then CHECKLIST(A)=2
  70. Next A
  71. For A=0 To WORDS-1
  72. AFIRM=0
  73. If CHECKLIST(A)=2 Then ADIN$=Mid$(HUMAN$,WORDL(A),WORDL(A+1)-WORDL(A)) : AFIRM=1
  74. If AFIRM=1 Then ADJECTIVES$(APOS)=ADIN$ : APOS=APOS+1
  75. If APOS>98 Then APOS=98
  76. Next A
  77. Rem **put the rest into the noun pile**
  78. For A=0 To WORDS-1
  79. AFIRM=0
  80. If CHECKLIST(A)=0 Then NOIN$=Mid$(HUMAN$,WORDL(A),WORDL(A+1)-WORDL(A)) : AFIRM=1
  81. If AFIRM=1 Then NOUNS$(NPOS)=NOIN$ : NPOS=NPOS+1
  82. If NPOS>98 Then NPOS=98
  83. Next A
  84. Rem **NOW FOR THE COMPUTED RESPONSE**
  85. A=Rnd(100)
  86. If A<90 Then RESPONSE$=NOUNS$(Rnd(NPOS))
  87. If A>90 and A<95 Then RESPONSE$=VERBS$(Rnd(VPOS)) Else RESPONSE$=ADJECTIVES$(Rnd(APOS))
  88. For A=0 To Rnd(15)
  89. B=Rnd(100)
  90. If B<40 Then RESPONSE$=RESPONSE$+NOUNS$(Rnd(NPOS))
  91. If B>40 and B<90 Then RESPONSE$=RESPONSE$+VERBS$(Rnd(VPOS)) Else RESPONSE$=RESPONSE$+ADJECTIVES$(Rnd(APOS))
  92. Next A
  93. Locate 0,4
  94. Pen 2
  95. Print RESPONSE$
  96. Curs Off 
  97. Wait Key 
  98. Clw 
  99. Goto 1
  100. End